:root {
  --bg: #f4f7f1;
  --surface: #ffffff;
  --surface-2: #eef5ea;
  --line: #d8e4d5;
  --text: #17231b;
  --muted: #637466;
  --brand: #168f5c;
  --brand-dark: #0e5e3e;
  --brand-2: #0f6f8f;
  --warn: #f2aa2e;
  --danger: #cc3f3f;
  --blue: #2d6cdf;
  --kid-sky: #36a9e1;
  --kid-yellow: #ffd34e;
  --kid-coral: #ff746c;
  --kid-lime: #9fd54a;
  --shadow: 0 10px 28px rgba(30, 63, 42, 0.09);
  --radius: 8px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.delivery-admin-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:12px; margin-bottom:12px; }
.delivery-admin-panel { min-width:0; }
.delivery-product-list,.driver-list,.delivery-routes { display:grid; gap:8px; margin-top:12px; }
.delivery-product-list article,.driver-list article,.delivery-routes article { align-items:center; border:1px solid #cfe3d1; display:grid; gap:10px; grid-template-columns:54px minmax(0,1fr) auto; padding:8px; }
.delivery-product-list img { background:#f4f8f2; height:50px; object-fit:contain; width:50px; }
.delivery-product-list span,.driver-list span,.delivery-routes span { color:#587061; display:block; font-size:12px; margin-top:3px; }
.driver-avatar { align-items:center; background:#e9f7ed; color:#087348; display:flex; height:46px; justify-content:center; width:46px; }
.delivery-route-builder { margin-bottom:12px; }
.delivery-order-picker { display:grid; gap:7px; margin:10px 0; max-height:340px; overflow:auto; }
.delivery-order-picker label { align-items:center; border:1px solid #d9e8da; cursor:pointer; display:grid; gap:10px; grid-template-columns:auto 1fr; padding:10px; }
.delivery-order-picker input { height:20px; width:20px; }
.delivery-order-picker small { color:#587061; display:block; margin-top:4px; }
@media (max-width:900px) { .delivery-admin-grid { grid-template-columns:1fr; } }

.traffic-kpi { appearance:none; background:#fff; border-bottom:1px solid #d4e3d6; border-left:4px solid #147a68; border-right:1px solid #d4e3d6; border-top:1px solid #d4e3d6; color:inherit; cursor:pointer; font:inherit; min-height:66px; padding:11px; text-align:left; }
.traffic-kpi:hover { background:#f1faf5; box-shadow:0 5px 15px rgba(12,82,55,.12); }
.traffic-kpi .label { color:#607565; font-size:12px; font-weight:900; text-transform:uppercase; }
.traffic-kpi .value { font-size:22px; font-weight:1000; margin-top:4px; }
.traffic-kpi > span { color:#678071; display:block; font-size:10px; margin-top:2px; }
.traffic-modal-backdrop { align-items:center; background:rgba(8,24,17,.66); display:flex; inset:0; justify-content:center; padding:18px; position:fixed; z-index:10050; }
.traffic-modal { background:#f7faf7; border:1px solid #bad2bf; box-shadow:0 26px 70px rgba(0,0,0,.3); max-height:92vh; max-width:1180px; overflow:auto; padding:18px; width:100%; }
.traffic-modal > header { align-items:start; border-bottom:1px solid #d1e2d4; display:flex; justify-content:space-between; margin-bottom:14px; padding-bottom:12px; }
.traffic-modal h2 { font-size:25px; margin:2px 0; }.traffic-modal h3 { font-size:15px; margin:0 0 10px; }
.traffic-modal header span { color:#63776a; font-size:12px; }.traffic-loading { padding:60px; text-align:center; }
.traffic-summary-grid { display:grid; gap:8px; grid-template-columns:repeat(5,minmax(0,1fr)); }
.traffic-summary-grid > div { background:#fff; border:1px solid #cfe0d2; padding:12px; }.traffic-summary-grid span { color:#607565; display:block; font-size:11px; font-weight:850; text-transform:uppercase; }.traffic-summary-grid strong { display:block; font-size:23px; margin-top:5px; }
.traffic-detail-grid { display:grid; gap:10px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:12px; }.traffic-detail-grid section,.traffic-recent { background:#fff; border:1px solid #cfe0d2; padding:12px; }.traffic-rank { align-items:center; border-bottom:1px solid #e3ece5; display:flex; font-size:12px; gap:8px; justify-content:space-between; padding:7px 0; }.traffic-rank span { overflow-wrap:anywhere; }.traffic-subhead { margin-top:16px!important; }.traffic-recent { margin-top:12px; }.traffic-recent table { min-width:940px; }.traffic-recent code { font-size:11px; }
.home-visit-counter { align-items:center; display:inline-flex!important; gap:5px; }.home-visit-counter strong { color:inherit; }
@media(max-width:800px){.traffic-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-detail-grid{grid-template-columns:1fr}.traffic-modal-backdrop{padding:8px}.traffic-modal{max-height:96vh;padding:12px}}

* {
  box-sizing: border-box;
}

body.school-app,
body.school-public {
  background: #f8fbf2;
  color: var(--text);
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

a {
  color: inherit;
}

.sr-only {
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  min-height: 100vh;
}

.topbar,
.public-topbar {
  align-items: center;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 14px 20px;
  position: sticky;
  top: 0;
  z-index: 20;
}

.brand-block {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.brand-copy {
  min-width: 0;
}

.brand-mark {
  align-items: center;
  background: #e0f4e7;
  border: 1px solid #b7dfc5;
  border-radius: 8px;
  color: var(--brand);
  display: inline-flex;
  font-size: 24px;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.brand-logo-mark {
  background: #fff;
  overflow: hidden;
  padding: 3px;
}

.brand-logo {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.brand-subtitle {
  color: var(--brand);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
  margin: 3px 0 0;
}

.eyebrow {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: 0;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  font-size: 24px;
  letter-spacing: 0;
  line-height: 1.1;
  margin-bottom: 0;
}

h2 {
  font-size: 22px;
  letter-spacing: 0;
  margin-bottom: 4px;
}

h3 {
  font-size: 16px;
  margin-bottom: 10px;
}

.top-actions,
.public-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.public-menu-check,
.public-menu-toggle {
  display: none;
}

.public-menu-toggle {
  align-items: center;
  background: #173421;
  border: 1px solid #173421;
  border-radius: 8px;
  color: #fff;
  font-weight: 900;
  gap: 8px;
  justify-content: center;
  min-height: 40px;
  padding: 8px 12px;
}

@media (min-width: 781px) {
  .public-menu-toggle {
    display: none !important;
  }
}

.icon-btn,
.primary-btn,
.secondary-btn,
.danger-btn,
.ghost-btn {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  text-decoration: none;
}

.icon-btn {
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  min-width: 38px;
  padding: 0;
}

.primary-btn {
  background: var(--brand);
  border: 1px solid var(--brand);
  color: #fff;
  font-weight: 800;
}

.secondary-btn {
  background: #e7f1ff;
  border: 1px solid #b9d2ff;
  color: #164f9c;
  font-weight: 800;
}

.ghost-btn {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--text);
  font-weight: 750;
}

.whatsapp-btn {
  align-items: center;
  background: #21a65b;
  border: 1px solid #178548;
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  font-weight: 850;
  gap: 8px;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  text-decoration: none;
}

.whatsapp-btn:hover {
  background: #178548;
}

.danger-btn {
  background: #fff4f4;
  border: 1px solid #f2c5c5;
  color: var(--danger);
  font-weight: 800;
}

.layout {
  display: grid;
  grid-template-columns: 238px minmax(0, 1fr);
  min-height: calc(100vh - 75px);
}

.side-nav {
  background: #14201a;
  color: #e7f6ec;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 10px;
  position: sticky;
  top: 75px;
  height: calc(100vh - 75px);
  overflow-y: auto;
}

.nav-submenu {
  border-left: 2px solid rgba(117, 200, 151, .35);
  display: grid;
  gap: 3px;
  margin: -2px 0 4px 19px;
  padding-left: 8px;
}

.nav-subitem {
  font-size: 12px;
  min-height: 34px;
  padding: 7px 9px;
}

.nav-subitem i { width: 18px; }

.nav-submenu[hidden] { display: none !important; }

.nav-item .nav-chevron {
  font-size: 11px;
  margin-left: auto;
  width: auto;
}

.nav-parent[aria-expanded="true"] .nav-chevron { transform: rotate(90deg); }

.hf-inbox-frame-wrap {
  background: #fffaf0;
  border: 2px solid #aad9bd;
  border-radius: 20px;
  box-shadow: 0 16px 36px rgba(21, 73, 46, .12);
  overflow: hidden;
}

.hf-inbox-frame {
  border: 0;
  display: block;
  height: max(680px, calc(100vh - 198px));
  width: 100%;
}

.nav-item {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: #cfe3d5;
  display: flex;
  gap: 10px;
  min-height: 42px;
  padding: 9px 11px;
  text-align: left;
}

.nav-item i {
  color: #75c897;
  width: 20px;
}

.nav-item.active,
.nav-item:hover {
  background: #20352a;
  color: #fff;
}

.workspace {
  min-width: 0;
  padding: 18px;
}

.status-bar {
  background: #fff9e8;
  border: 1px solid #f4d28a;
  border-radius: 8px;
  color: #7a5200;
  font-size: 13px;
  font-weight: 750;
  margin-bottom: 14px;
  padding: 10px 12px;
}

.status-bar.ok {
  background: #e8f8ed;
  border-color: #b8dfc2;
  color: #12693e;
}

.status-bar.error {
  background: #fff0f0;
  border-color: #efbaba;
  color: #8f2323;
}

.status-bar.warning {
  background: #fff9e8;
  border-color: #f4d28a;
  color: #7a5200;
}

.school-toast {
  align-items: center;
  background: #163021;
  border: 1px solid #55c17e;
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
  color: #fff;
  display: inline-flex;
  font-size: 14px;
  font-weight: 850;
  gap: 10px;
  left: 50%;
  max-width: min(92vw, 420px);
  padding: 12px 16px;
  position: fixed;
  top: 24px;
  transform: translateX(-50%);
  z-index: 150;
}

.school-toast i {
  color: #8cf0ad;
}

.school-toast.error {
  background: #441d1d;
  border-color: #f2b1b1;
}

.school-toast.error i {
  color: #ffd0d0;
}

.view-head {
  align-items: flex-start;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.view-head p {
  color: var(--muted);
  margin-bottom: 0;
}

.grid {
  display: grid;
  gap: 14px;
}

.kpi-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.two-col {
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
}

.three-col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 14px;
}

.panel.flat {
  box-shadow: none;
}

.panel.soft-panel {
  background: #f7fbf4;
  box-shadow: none;
}

.quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.credit-line-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.credit-line-card {
  background: #fbfef9;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.credit-line-card h3 {
  margin: 8px 0 4px;
}

.credit-line-head {
  align-items: flex-start;
}

.credit-line-balance {
  background: var(--brand);
  border-radius: 8px;
  color: #fff;
  min-width: 130px;
  padding: 10px;
  text-align: right;
}

.credit-line-balance span {
  display: block;
  font-size: 11px;
  font-weight: 900;
  opacity: 0.82;
  text-transform: uppercase;
}

.credit-line-balance strong {
  display: block;
  font-size: 24px;
  line-height: 1.1;
}

.credit-line-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
  gap: 8px;
}

.credit-line-metrics > div {
  background: #f3faf0;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: 10px;
}

.credit-line-metrics span {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.credit-line-toolbar {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr minmax(260px, 460px) auto;
}

.credit-search-panel {
  margin: 0;
}

.credit-movement-list {
  border-top: 1px dashed var(--line);
  display: grid;
  gap: 6px;
  margin-top: 10px;
  padding-top: 10px;
}

.credit-movement-row {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.credit-movement-row span {
  color: var(--muted);
  min-width: 0;
}

.credit-movement-row strong {
  color: var(--brand);
  white-space: nowrap;
}

.credit-movement-row.payment strong {
  color: var(--danger);
}

.chip.danger {
  background: #ffe8e8;
  border-color: #ffc8c8;
  color: var(--danger);
}

.kpi {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 5px solid var(--brand);
  border-radius: 8px;
  min-height: 94px;
  padding: 13px;
}

.kpi .label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.kpi .value,
.kpi strong {
  display: block;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.1;
  margin-top: 8px;
}

.table-wrap {
  overflow-x: auto;
}

table {
  border-collapse: collapse;
  width: 100%;
}

th,
td {
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  padding: 9px 8px;
  text-align: left;
  vertical-align: middle;
}

th {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.form-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.field.full {
  grid-column: 1 / -1;
}

label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

input,
select,
textarea {
  background: #fff;
  border: 1px solid #cbd9cb;
  border-radius: 8px;
  color: var(--text);
  min-height: 38px;
  padding: 8px 10px;
  width: 100%;
}

textarea {
  min-height: 82px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(22, 143, 92, 0.16);
  outline: none;
}

.rich-editor {
  background: #f8fff8;
  border: 1px solid #cbd9cb;
  border-radius: 8px;
  display: grid;
  gap: 0;
  overflow: hidden;
}

.rich-toolbar {
  align-items: center;
  background: #eef8f0;
  border-bottom: 1px solid #d7e6d8;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
}

.rich-toolbar button,
.rich-color-btn {
  align-items: center;
  background: #fff;
  border: 1px solid #cbd9cb;
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  display: inline-flex;
  height: 34px;
  justify-content: center;
  min-height: 34px;
  min-width: 36px;
  padding: 0;
  position: relative;
}

.rich-toolbar button:hover,
.rich-color-btn:hover {
  border-color: var(--brand);
  color: var(--brand);
}

.rich-color-btn input {
  cursor: pointer;
  inset: 0;
  opacity: 0;
  position: absolute;
}

.rich-editor-surface {
  background: #fff;
  color: var(--text);
  line-height: 1.55;
  min-height: 150px;
  outline: none;
  padding: 12px;
}

.rich-editor-surface:empty::before {
  color: var(--muted);
  content: attr(data-placeholder);
}

.rich-editor-surface ul,
.rich-editor-surface ol {
  margin: 8px 0;
  padding-left: 22px;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.chip {
  background: #eef7ef;
  border: 1px solid #c5e0c9;
  border-radius: 999px;
  color: #23633e;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  padding: 6px 9px;
}

.chip.blue {
  background: #eef4ff;
  border-color: #bfd4ff;
  color: #2353a2;
}

.chip.gold {
  background: #fff8e5;
  border-color: #f1d693;
  color: #805900;
}

.check-chip {
  align-items: center;
  background: #eef7ef;
  border: 1px solid #c5e0c9;
  border-radius: 999px;
  color: #23633e;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  gap: 6px;
  line-height: 1;
  padding: 6px 9px;
}

.check-chip input {
  min-height: auto;
  width: auto;
}

.announcement-form-actions {
  align-items: stretch;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.purchase-tax-chip {
  border-radius: 8px;
  min-height: 38px;
}

.purchase-summary-row {
  align-items: center;
  gap: 12px;
}

.purchase-total-box {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}

.purchase-total-box span {
  background: #f8fcf5;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  color: var(--muted);
  display: inline-flex;
  gap: 6px;
  padding: 8px 10px;
}

.purchase-total-box strong {
  color: var(--text);
}

.product-availability-card {
  align-items: center;
  background: #f8fcf5;
  border: 1px solid #cde3cc;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(210px, 0.7fr) minmax(0, 1.3fr);
  padding: 12px;
}

.product-availability-copy {
  display: grid;
  gap: 3px;
}

.product-availability-copy strong {
  font-size: 13px;
}

.product-availability-copy span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.product-availability-controls,
.product-menu-summary {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.product-menu-summary {
  margin-top: 8px;
}

.availability-pill {
  align-items: center;
  background: #fff;
  border: 1px solid #bfd8bf;
  border-radius: 999px;
  color: #315b3c;
  cursor: pointer;
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  gap: 6px;
  line-height: 1.12;
  min-height: 34px;
  padding: 9px 12px;
  user-select: none;
}

.availability-pill input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.availability-pill.selected,
.availability-pill:has(input:checked) {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  box-shadow: 0 8px 18px rgba(22, 143, 92, 0.18);
}

.availability-pill--off.selected,
.availability-pill--off:has(input:checked) {
  background: #fff7e7;
  border-color: #efc56d;
  box-shadow: 0 8px 18px rgba(242, 170, 46, 0.18);
  color: #7c5600;
}

.availability-pill--day {
  min-width: 56px;
  justify-content: center;
}

.availability-divider {
  background: #dbe8d8;
  height: 28px;
  margin: 0 2px;
  width: 1px;
}

.muted {
  color: var(--muted);
}

.small {
  font-size: 12px;
}

.product-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.product-tile {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 96px;
  padding: 11px;
  text-align: left;
}

.product-tile img {
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  display: block;
  margin-bottom: 8px;
  object-fit: cover;
  width: 100%;
}

.product-tile strong {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  margin-bottom: 8px;
}

.product-tile span {
  color: var(--brand);
  font-size: 18px;
  font-weight: 900;
}

.cart-line {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) 36px 78px 34px;
  padding: 9px 0;
}

.cart-line button {
  border-radius: 8px;
  min-height: 30px;
}

.cart-total {
  align-items: center;
  display: flex;
  font-size: 22px;
  font-weight: 900;
  justify-content: space-between;
  margin-top: 12px;
}

.transfer-box {
  background: #fffdf6;
  border: 1px solid #e8d596;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  margin-top: 12px;
  overflow: hidden;
  padding: 8px;
}

.transfer-card-image {
  aspect-ratio: 1 / 1;
  border: 1px solid #efe2b6;
  border-radius: 8px;
  box-shadow: 0 12px 24px rgba(20, 60, 39, 0.12);
  display: block;
  object-fit: cover;
  width: 100%;
}

.transfer-box-head {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 46px minmax(0, 1fr);
}

.transfer-box-head strong {
  color: #143c27;
  display: block;
  font-size: 16px;
  line-height: 1.12;
}

.transfer-box-head small {
  color: #5c6f5f;
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  margin-top: 3px;
}

.transfer-icon {
  align-items: center;
  background: #143c27;
  border-radius: 8px;
  color: #ffd34e;
  display: inline-flex;
  font-size: 20px;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.transfer-grid {
  background: rgba(255, 253, 246, 0.76);
  border: 1px dashed #d7c98d;
  border-radius: 8px;
  display: grid;
  gap: 8px 10px;
  grid-template-columns: 92px minmax(0, 1fr);
  padding: 10px;
}

.transfer-grid span {
  color: #6f7c67;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.transfer-grid strong {
  color: #143c27;
  font-size: 13px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.transfer-clabe {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  letter-spacing: 0;
}

.transfer-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.transfer-proof-link {
  justify-content: center;
}

.transfer-note {
  color: #3d5d46;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  margin: 0;
}

.order-receipt {
  background: #eaf8e7;
  border: 1px solid #bfe6bf;
  border-radius: 8px;
  color: #143c27;
  display: grid;
  gap: 8px;
  padding: 12px;
}

.order-receipt strong {
  display: block;
  font-size: 15px;
  line-height: 1.15;
}

.order-receipt p {
  color: #3d5d46;
  font-size: 13px;
  margin: 0;
}

.split {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
}

.menu-tools {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 14px;
  padding-top: 14px;
}

.admin-submenu {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.admin-submenu-btn {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: inline-flex;
  font-weight: 900;
  gap: 8px;
  min-height: 40px;
  padding: 9px 13px;
}

.admin-submenu-btn.active {
  background: var(--brand-2);
  border-color: var(--brand-2);
  color: #fff;
}

.menu-day-planner {
  background:
    linear-gradient(135deg, rgba(255, 211, 78, 0.18), transparent 34%),
    linear-gradient(160deg, #ffffff, #f8fff7);
}

.menu-day-hero {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.menu-day-hero h3 {
  font-size: 24px;
  margin: 2px 0 4px;
}

.menu-day-calendar {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.menu-day-calendar .field {
  margin: 0;
  min-width: 180px;
}

.menu-day-calendar .field span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.menu-day-meta {
  border-top: 1px dashed rgba(22, 143, 92, 0.28);
  margin-top: 14px;
  padding-top: 14px;
}

.menu-day-nonworking-toggle {
  align-items: center;
  background: linear-gradient(135deg, #fff8e5, #eef7ef);
  border: 1px solid #f1d693;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
  color: var(--text);
  display: flex;
  gap: 12px;
  min-height: 56px;
  padding: 10px 12px;
}

.menu-day-nonworking-toggle input {
  accent-color: var(--brand-2);
  flex: 0 0 auto;
  min-height: 22px;
  width: 22px;
}

.menu-day-nonworking-toggle span {
  display: grid;
  gap: 3px;
}

.menu-day-nonworking-toggle strong {
  color: #805900;
  font-size: 14px;
}

.menu-day-nonworking-toggle small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.menu-day-save-row {
  margin-top: 12px;
}

.menu-day-save-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.menu-propagation-panel {
  background:
    radial-gradient(circle at 10% 12%, rgba(31, 139, 214, 0.13), transparent 26%),
    linear-gradient(135deg, #ffffff, #f8fff9 48%, #fffaf0);
  border-color: rgba(22, 143, 92, 0.22);
  margin-top: 14px;
}

.menu-propagation-panel.is-collapsed {
  padding-bottom: 12px;
}

.menu-propagation-head h3 {
  font-size: 24px;
  margin: 2px 0 4px;
}

.menu-propagation-head {
  cursor: pointer;
}

.menu-propagation-head .menu-propagation-actions button,
.menu-propagation-head .menu-propagation-actions a {
  cursor: pointer;
}

.menu-propagation-panel.is-collapsed .menu-propagation-head h3 {
  font-size: 20px;
}

.menu-propagation-actions,
.menu-propagation-share,
.menu-propagation-recipient-actions,
.menu-propagation-contact-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.menu-propagation-stats {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 12px 0;
}

.menu-propagation-stats span {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  padding: 10px;
}

.menu-propagation-stats strong {
  color: var(--brand-dark);
  display: block;
  font-size: 20px;
  line-height: 1;
}

.menu-propagation-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr);
}

.menu-propagation-card {
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(30, 63, 42, 0.06);
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
}

.menu-propagation-card h4 {
  color: var(--brand-dark);
  font-size: 17px;
  margin: 0;
}

.menu-propagation-contact-form {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 0.85fr 1.1fr 0.85fr auto;
}

.menu-propagation-contact-form input,
.menu-propagation-contact-form select,
.menu-propagation-message {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  font: inherit;
  font-weight: 750;
  min-height: 38px;
  min-width: 0;
  padding: 8px 10px;
}

.menu-propagation-list {
  display: grid;
  gap: 8px;
}

.menu-propagation-contact,
.menu-propagation-recipient {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  padding: 10px;
}

.menu-propagation-contact strong,
.menu-propagation-recipient strong {
  color: var(--text);
  display: block;
  line-height: 1.2;
}

.menu-propagation-contact span,
.menu-propagation-recipient span {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 750;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.menu-propagation-message {
  line-height: 1.35;
  min-height: 166px;
  resize: vertical;
  width: 100%;
}

.menu-propagation-share {
  justify-content: flex-start;
}

.menu-propagation-recipients {
  margin-top: 12px;
}

.menu-propagation-empty {
  align-items: center;
  background: rgba(248, 255, 249, 0.82);
  border: 1px dashed rgba(22, 143, 92, 0.3);
  border-radius: 8px;
  color: var(--muted);
  display: flex;
  gap: 10px;
  min-height: 54px;
  padding: 12px;
}

.menu-propagation-empty i {
  color: var(--brand);
  font-size: 18px;
}

.menu-day-board {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(320px, 0.9fr) minmax(420px, 1.25fr);
  margin-top: 14px;
}

.menu-day-selected-grid,
.menu-day-library-grid {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.menu-day-selected-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.menu-day-library-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.menu-day-off-state {
  grid-column: 1 / -1;
  min-height: 190px;
}

.menu-day-product {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(30, 63, 42, 0.06);
  display: grid;
  grid-template-rows: 132px minmax(178px, auto);
  min-width: 0;
  overflow: hidden;
}

.menu-day-product.is-included {
  border-color: rgba(22, 143, 92, 0.42);
}

.menu-day-product-image {
  align-items: center;
  background: linear-gradient(135deg, #eff9ff, #fff8d8);
  color: var(--brand);
  display: flex;
  font-size: 38px;
  justify-content: center;
  min-width: 0;
  overflow: hidden;
}

.menu-day-product-image-button {
  border: 0;
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-align: inherit;
  width: 100%;
}

.menu-day-product-image-button:focus-visible {
  outline: 3px solid rgba(22, 143, 92, 0.42);
  outline-offset: -4px;
}

.menu-day-product-image img {
  display: block;
  height: 100%;
  object-fit: contain;
  transition: transform 0.18s ease, filter 0.18s ease;
  width: 100%;
}

.menu-day-product-image-button:hover img,
.menu-day-product-image-button:focus-visible img {
  filter: saturate(1.05);
  transform: scale(1.025);
}

.menu-day-product-body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 10px;
}

.menu-day-product-body strong {
  line-height: 1.2;
}

.menu-day-product-body .product-menu-summary {
  margin-top: 0;
}

.menu-day-product-footer {
  margin-top: auto;
}

.menu-day-offer-row {
  align-items: center;
  background: #fff9dc;
  border: 1px solid #f0cf55;
  border-radius: 6px;
  display: flex;
  gap: 6px;
  min-height: 32px;
  padding: 4px 5px;
}

.menu-day-offer-toggle {
  align-items: center;
  color: #6f5200;
  cursor: pointer;
  display: flex;
  font-size: 12px;
  font-weight: 900;
  flex: 0 0 auto;
  gap: 4px;
}

.menu-day-offer-toggle input {
  appearance: auto;
  height: 15px;
  margin: 0;
  min-height: 0;
  padding: 0;
  width: 15px;
}

.menu-day-offer-base {
  color: #80651a;
  font-size: 10px;
  margin-left: auto;
  white-space: nowrap;
}

.menu-day-offer-input {
  height: 26px;
  min-width: 0;
  padding: 3px 5px;
  width: 62px;
}

.menu-day-offer-save {
  flex: 0 0 26px;
  height: 26px;
  min-height: 26px;
  padding: 0;
  width: 26px;
}

.menu-day-card-price {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.menu-day-card-price del {
  color: #7d8580;
  font-size: 11px;
}

.menu-day-card-price.is-offer strong {
  color: #d92d20;
}

.menu-item.has-day-offer {
  border-color: #f0b429;
  box-shadow: 0 10px 24px rgba(240, 180, 41, 0.2);
}

.day-offer-badge {
  align-items: center;
  animation: day-offer-pulse 1.8s ease-in-out 2;
  background: #fff0a8;
  border: 1px solid #f0b429;
  border-radius: 999px;
  color: #704d00;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  gap: 5px;
  justify-self: start;
  padding: 5px 9px;
}

.day-offer-price {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.day-offer-price del,
.day-offer-chip del {
  color: #7d8580;
  font-size: 0.72em;
}

.day-offer-price strong,
.day-offer-chip {
  color: #d92d20;
}

@keyframes day-offer-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.045); }
}

@media (prefers-reduced-motion: reduce) {
  .day-offer-badge { animation: none; }
}

.menu-day-search {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 8px;
  min-height: 38px;
  padding: 0 10px;
}

.menu-day-search i {
  color: var(--brand);
}

.menu-day-search input {
  border: 0;
  min-width: 210px;
  outline: 0;
}

.catalog-product-filter {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 10px 0 12px;
}

.catalog-product-search {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 8px;
  min-height: 40px;
  padding: 0 12px;
}

.catalog-product-search i {
  color: var(--brand);
}

.catalog-product-search input {
  border: 0;
  flex: 1;
  min-width: 0;
  outline: 0;
}

.catalog-filter-empty {
  margin-top: 10px;
}

.address-field {
  gap: 6px;
}

.address-input-row {
  align-items: stretch;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.address-input-row .secondary-btn {
  justify-content: center;
  white-space: nowrap;
}

.address-preview {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

#ags-addrpro-modal.modal {
  align-items: center;
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  padding: 18px;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 80;
}

#ags-addrpro-modal.hidden {
  display: none;
}

#ags-addrpro-modal .modal-backdrop {
  background: rgba(15, 35, 27, 0.54);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

#ags-addrpro-modal .modal-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 24px 80px rgba(15, 35, 27, 0.22);
  max-height: 92vh;
  overflow: auto;
  padding: 16px;
  position: relative;
  z-index: 1;
}

.report-box {
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 14px;
  padding: 14px;
}

.report-box pre {
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
  overflow-x: auto;
  white-space: pre-wrap;
}

.command-panel {
  margin-bottom: 14px;
}

.command-grid {
  margin-top: 12px;
}

.command-list {
  display: grid;
  gap: 8px;
}

.command-chip {
  align-items: flex-start;
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 58px;
  padding: 10px 12px;
  text-align: left;
}

.command-chip:hover,
.command-chip:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(22, 143, 92, 0.12);
}

.command-chip.internal {
  background: #f5f8ff;
  border-color: #bfd4ff;
}

.command-chip span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.command-console {
  align-items: end;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 14px;
  padding-top: 14px;
}

.catalog-photo {
  align-items: flex-start;
  display: grid;
  gap: 6px;
  min-width: 142px;
}

.catalog-photo img,
.photo-placeholder {
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  width: 130px;
}

.catalog-photo img {
  border: 1px solid var(--line);
  object-fit: cover;
}

.photo-placeholder {
  align-items: center;
  background: #eef5ea;
  border: 1px dashed #b5cbb8;
  color: var(--muted);
  display: flex;
  justify-content: center;
}

.compact-file {
  font-size: 11px;
  max-width: 180px;
  min-height: 32px;
  padding: 5px;
}

.form-grid.compact-grid {
  gap: 8px;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
}

.form-grid.compact-grid .field label {
  font-size: 11px;
}

.form-grid.compact-grid input,
.form-grid.compact-grid select,
.form-grid.compact-grid textarea {
  min-height: 34px;
  padding: 7px 8px;
}

.catalog-photo-open,
.product-name-open {
  background: transparent;
  border: 0;
  color: inherit;
  padding: 0;
  text-align: left;
}

.catalog-photo-open {
  border-radius: 8px;
  display: block;
}

.catalog-photo-open:hover img,
.catalog-photo-open:focus-visible img,
.catalog-photo-open:hover .photo-placeholder,
.catalog-photo-open:focus-visible .photo-placeholder {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(22, 143, 92, 0.14);
}

.product-name-open {
  font-weight: 850;
}

.product-name-open:hover,
.product-name-open:focus-visible {
  color: var(--brand);
  outline: none;
}

.recipe-panel {
  margin-top: 14px;
}

.recipe-builder {
  margin-top: 12px;
}

.recipe-chip-row {
  margin-top: 7px;
}

.field.two-wide {
  grid-column: span 2;
}

.admin-product-modal-backdrop {
  align-items: flex-start;
  background: rgba(8, 20, 13, 0.68);
  display: flex;
  inset: 0;
  justify-content: center;
  overflow: auto;
  padding: 22px;
  position: fixed;
  z-index: 95;
}

.admin-purchase-modal-backdrop,
.admin-user-modal-backdrop,
.admin-ingredient-modal-backdrop,
.admin-ingredient-edit-modal-backdrop,
.admin-supplier-modal-backdrop,
.admin-supplier-edit-modal-backdrop,
.admin-supplier-price-modal-backdrop,
.admin-purchase-order-modal-backdrop,
.admin-report-modal-backdrop {
  align-items: flex-start;
  background: rgba(8, 20, 13, 0.68);
  display: flex;
  inset: 0;
  justify-content: center;
  overflow: auto;
  padding: 22px;
  position: fixed;
  z-index: 96;
}

.admin-product-modal {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
  margin: auto;
  max-width: 1180px;
  overflow: hidden;
  width: min(100%, 1180px);
}

.compact-admin-modal {
  max-width: 760px;
  width: min(100%, 760px);
}

.purchase-order-modal {
  max-width: 1060px;
  width: min(100%, 1060px);
}

.admin-menu-report-modal {
  max-width: 1320px;
  width: min(100%, 1320px);
}

.purchase-editor-modal {
  max-width: 1120px;
  width: min(100%, 1120px);
}

.purchase-editor-body {
  display: grid;
  gap: 12px;
  max-height: calc(100vh - 110px);
  overflow: auto;
  padding: 14px;
}

.admin-product-modal-head {
  align-items: center;
  background: #163021;
  color: #fff;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 14px 16px;
}

.admin-product-modal-head .eyebrow {
  color: #bfe5cd;
}

.admin-product-modal-head h3 {
  margin-bottom: 0;
}

.admin-product-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-menu-report-body {
  background:
    radial-gradient(circle at 12% 10%, rgba(255, 214, 87, 0.18), transparent 28%),
    linear-gradient(135deg, #f7fbf4, #fffdf6);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) 330px;
  max-height: calc(100vh - 108px);
  overflow: auto;
  padding: 14px;
}

.admin-menu-report-frame-shell {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(22, 143, 92, 0.05);
  min-height: min(74vh, 780px);
  overflow: hidden;
}

.admin-menu-report-frame {
  border: 0;
  display: block;
  height: min(74vh, 780px);
  width: 100%;
}

.admin-menu-report-side {
  align-self: start;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #d7e9d2;
  border-bottom-width: 4px;
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(20, 60, 39, 0.1);
  display: grid;
  gap: 12px;
  padding: 16px;
}

.admin-menu-report-side h4 {
  color: var(--brand-dark);
  font-size: 22px;
  margin: 0;
}

.admin-menu-report-side p {
  color: var(--muted);
  font-weight: 750;
  line-height: 1.45;
  margin: 0;
}

.admin-menu-report-links {
  display: grid;
  gap: 7px;
}

.admin-menu-report-links label {
  color: var(--brand-dark);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.admin-menu-report-links input {
  background: #f9fcf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  padding: 10px 11px;
  width: 100%;
}

.admin-menu-report-side-actions {
  display: grid;
  gap: 8px;
}

.admin-product-modal-body {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  max-height: calc(100vh - 112px);
  overflow: auto;
  padding: 16px;
}

.row-actions {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.icon-action-btn {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  text-decoration: none;
  width: 34px;
}

.icon-action-btn:hover {
  border-color: #9dcfab;
  color: var(--brand);
}

.icon-action-btn.warning {
  background: #fff8e5;
  border-color: #f1d693;
  color: #805900;
}

.icon-action-btn.danger {
  background: #fff4f4;
  border-color: #f2c5c5;
  color: var(--danger);
}

.modal-purchase-summary {
  margin-top: 12px;
}

.purchase-line-actions {
  justify-content: flex-start;
  margin-top: 10px;
}

.user-detail-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.user-detail-grid > div {
  background: #f8fcf5;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 10px;
}

.admin-product-modal-media {
  align-self: start;
  display: grid;
  gap: 12px;
  position: sticky;
  top: 0;
}

.admin-product-photo {
  background: #eef5ea;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.admin-product-photo img,
.admin-product-photo .photo-placeholder {
  aspect-ratio: 4 / 3;
  min-height: 220px;
  width: 100%;
}

.admin-product-photo img {
  display: block;
  object-fit: cover;
}

.admin-product-photo .photo-placeholder {
  display: flex;
}

.admin-modal-note {
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 12px;
}

.admin-modal-note strong {
  color: var(--brand);
  font-size: 26px;
}

.admin-modal-note span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.admin-product-editor {
  display: grid;
  gap: 14px;
}

.admin-modal-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
}

.user-whatsapp-notes-section {
  border-top: 0;
  margin: 0 14px 14px;
}

.user-notes-head h3 {
  margin-bottom: 0;
}

.whatsapp-notes-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.whatsapp-note-card {
  align-items: start;
  background: #fbfff8;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
}

.whatsapp-note-card p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
  margin: 8px 0 0;
}

.recipe-lines {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.recipe-line-card {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1fr) 110px 120px 95px auto 42px;
  padding: 10px;
}

.recipe-line-card p {
  line-height: 1.35;
  margin-bottom: 6px;
}

.recipe-line-card input {
  min-height: 34px;
}

.recipe-line-cost {
  align-items: end;
  display: grid;
  gap: 2px;
  justify-items: end;
  min-width: 86px;
}

.recipe-line-cost span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.recipe-line-cost strong {
  color: var(--brand-dark);
  font-size: 14px;
  line-height: 1.1;
  white-space: nowrap;
}

.mini-table th,
.mini-table td {
  font-size: 12px;
  padding: 7px 6px;
}

.optional-evidence {
  background: #f8fbf6;
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 10px;
}

.ingredient-purchase-form {
  display: grid;
  gap: 12px;
}

.purchase-lines-table table {
  min-width: 980px;
}

.purchase-lines-table select,
.purchase-lines-table input {
  min-width: 140px;
}

.ingredient-search-picker {
  display: grid;
  gap: 6px;
  min-width: 260px;
}

.ingredient-search-input-wrap {
  position: relative;
}

.ingredient-search-input-wrap i {
  color: var(--muted);
  left: 11px;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.ingredient-search-input-wrap input {
  min-width: 240px;
  padding-left: 34px;
}

.ingredient-search-results {
  background: #fff;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(30, 63, 42, 0.12);
  display: grid;
  gap: 4px;
  max-height: 220px;
  overflow: auto;
  padding: 6px;
}

.ingredient-search-results[hidden],
.ingredient-create-inline[hidden] {
  display: none;
}

.ingredient-search-results button {
  background: #f8fcf5;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 3px;
  min-height: auto;
  padding: 8px 9px;
  text-align: left;
}

.ingredient-search-results button:hover {
  background: #eef7ef;
  border-color: #b9d9be;
}

.ingredient-search-results span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.pos-payer-tabs {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pos-payer-tabs button {
  align-items: center;
  background: #f8fcf5;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  color: var(--text);
  display: inline-flex;
  font-weight: 900;
  gap: 6px;
  justify-content: center;
  min-height: 38px;
  padding: 8px 10px;
}

.pos-payer-tabs button.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.pos-payer-picker {
  min-width: 0;
}

.pos-payer-picker .ingredient-search-input-wrap input {
  min-width: 0;
  width: 100%;
}

.pos-payer-results button[disabled] {
  cursor: default;
  opacity: 0.76;
}

.pos-command-panel {
  margin-bottom: 14px;
}

.closing-cash-card {
  background: #fbfff8;
  border: 1px solid #cfe5ce;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 14px;
}

.closing-cash-card h3 {
  margin-bottom: 4px;
}

.closing-cash-actions {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}

.pos-command-bar {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.pos-date-field {
  margin: 0;
  min-width: 170px;
}

.pos-date-field input {
  min-height: 42px;
}

.pos-burst-open-btn {
  min-height: 44px;
}

.pos-recess-brief {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
}

.pos-recess-brief span {
  background: #f8fcf5;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  padding: 9px 10px;
}

.pos-recess-brief strong {
  color: var(--brand-dark);
  display: block;
  font-size: 15px;
}

.pos-workspace {
  align-items: start;
}

.pos-panel-title {
  align-items: flex-start;
  margin-bottom: 12px;
}

.pos-panel-title h3,
.pos-cart-head h3 {
  margin: 0 0 4px;
}

.pos-scope-tabs {
  background: #f2f8ef;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  display: inline-grid;
  gap: 4px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
}

.pos-scope-tabs button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: var(--muted);
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  gap: 5px;
  justify-content: center;
  min-height: 32px;
  padding: 6px 8px;
}

.pos-scope-tabs button.active {
  background: #fff;
  box-shadow: 0 6px 14px rgba(22, 143, 92, 0.12);
  color: var(--brand-dark);
}

.pos-scope-tabs button span {
  background: #e2f2e3;
  border-radius: 999px;
  color: var(--brand-dark);
  padding: 1px 6px;
}

.pos-product-grid {
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
}

.pos-product-tile {
  min-height: 0;
  padding: 8px;
  position: relative;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.pos-product-tile:hover {
  border-color: #9acfa5;
  box-shadow: 0 8px 18px rgba(20, 86, 52, 0.12);
  transform: translateY(-1px);
}

.pos-product-tile.selected {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(22, 143, 92, 0.14), 0 10px 20px rgba(20, 86, 52, 0.12);
}

.pos-product-tile:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}

.pos-product-tile img {
  aspect-ratio: 4 / 3;
  background: #fffaf0;
  object-fit: contain;
}

.pos-product-tile strong {
  min-height: 32px;
}

.pos-product-price {
  display: block;
}

.pos-product-icon {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: #eff7ec;
  border: 1px dashed #bcd8bd;
  border-radius: 8px;
  color: var(--brand);
  display: grid;
  font-size: 24px;
  margin-bottom: 8px;
  place-items: center;
  width: 100%;
}

.pos-quantity-badge {
  align-items: center;
  background: var(--brand);
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff !important;
  display: inline-flex;
  font-size: 13px !important;
  font-weight: 1000;
  height: 28px;
  justify-content: center;
  position: absolute;
  right: 6px;
  top: 6px;
  width: 28px;
  z-index: 2;
}

.pos-empty-products {
  min-height: 220px;
}

.pos-empty-products p,
.pos-cart-empty p {
  color: var(--muted);
  margin: 6px 0 0;
}

.pos-cart-panel {
  position: sticky;
  top: 88px;
}

.pos-cart-head {
  align-items: center;
}

.pos-pay-grid {
  margin-top: 12px;
}

.pos-actions-row {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
}

.pos-actions-row--single {
  grid-template-columns: 1fr;
}

.pos-actions-row button,
.pos-submit-btn {
  min-height: 46px;
}

.pos-cash-field {
  margin: 0;
}

.pos-cash-buttons {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.pos-cash-buttons button {
  background: #fffdf5;
  border: 1px solid #efd37a;
  border-radius: 8px;
  color: #6b4b05;
  font-size: 24px;
  font-weight: 1000;
  line-height: 1;
  min-height: 62px;
  padding: 12px 8px;
  white-space: nowrap;
}

.pos-cash-buttons button:first-child {
  font-size: 18px;
}

.pos-cash-buttons button:hover {
  background: #fff2bd;
  border-color: #d7a928;
}

.pos-cash-buttons button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.pos-budget-helper {
  background: #fffdf5;
  border: 1px solid #efd37a;
  border-radius: 8px;
  margin-bottom: 12px;
  padding: 10px;
}

.pos-budget-head {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(110px, 150px) minmax(120px, 0.6fr) minmax(240px, 1fr);
}

.pos-budget-head strong,
.pos-budget-head small,
.pos-budget-amount span {
  display: block;
}

.pos-budget-head small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.pos-budget-amount span {
  color: #6b4b05;
  font-size: 11px;
  font-weight: 1000;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.pos-budget-amount input {
  background: #fff;
  border: 2px solid #efd37a;
  border-radius: 8px;
  color: var(--brand-dark);
  font-size: 26px;
  font-weight: 1000;
  min-height: 54px;
  padding: 8px 10px;
  width: 100%;
}

.pos-budget-tabs {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pos-budget-tabs button {
  align-items: center;
  background: #fff;
  border: 1px solid #efd37a;
  border-radius: 8px;
  color: #6b4b05;
  display: inline-flex;
  font-size: 12px;
  font-weight: 1000;
  gap: 6px;
  justify-content: center;
  min-height: 46px;
  padding: 8px 9px;
}

.pos-budget-tabs button.active {
  background: #ffeaa5;
  border-color: #d7a928;
  color: #4f3500;
  box-shadow: 0 6px 14px rgba(215, 169, 40, 0.18);
}

.pos-budget-results {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  margin-top: 10px;
}

.pos-budget-empty {
  align-items: center;
  background: #fff;
  border: 1px dashed #efd37a;
  border-radius: 8px;
  color: #6b4b05;
  display: flex;
  font-size: 13px;
  font-weight: 900;
  gap: 8px;
  min-height: 52px;
  padding: 10px;
}

.pos-budget-option {
  align-items: center;
  background: #fff;
  border: 1px solid #eadcad;
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 8px;
  grid-template-columns: 44px minmax(0, 1fr);
  min-height: 76px;
  padding: 8px;
  position: relative;
  text-align: left;
}

.pos-budget-option:hover {
  border-color: #d7a928;
  box-shadow: 0 8px 18px rgba(119, 82, 8, 0.12);
  transform: translateY(-1px);
}

.pos-budget-option img,
.pos-budget-option-icon {
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  width: 44px;
}

.pos-budget-option img {
  object-fit: cover;
}

.pos-budget-option-icon {
  align-items: center;
  background: #fff4c7;
  color: #9b6a00;
  display: grid;
  font-size: 20px;
  place-items: center;
}

.pos-budget-option strong,
.pos-budget-option small {
  display: block;
}

.pos-budget-option strong {
  font-size: 13px;
  line-height: 1.08;
}

.pos-budget-option small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  margin-top: 3px;
}

.pos-budget-option em {
  background: #e2f2e3;
  border-radius: 999px;
  color: var(--brand-dark);
  font-size: 11px;
  font-style: normal;
  font-weight: 1000;
  padding: 3px 7px;
  position: absolute;
  right: 6px;
  top: 6px;
}

.pos-burst-backdrop {
  background: rgba(9, 24, 15, 0.78);
  display: flex;
  inset: 0;
  padding: 12px;
  position: fixed;
  z-index: 1000;
}

.pos-burst-modal {
  background: #f6fbf2;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  overflow: hidden;
  width: 100%;
}

.pos-burst-head {
  align-items: center;
  background: linear-gradient(135deg, #0e5e3e, #168f5c);
  color: #fff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 14px 16px;
}

.pos-burst-head .eyebrow {
  color: rgba(255, 255, 255, 0.78);
  margin: 0 0 2px;
}

.pos-burst-head h2 {
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1;
  margin: 0;
}

.pos-burst-head span {
  color: rgba(255, 255, 255, 0.85);
  display: block;
  font-weight: 800;
  margin-top: 5px;
}

.pos-burst-head-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.pos-burst-head .icon-btn {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.32);
  color: #fff;
}

.pos-wave-tabs {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 8px;
  display: inline-grid;
  gap: 4px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
}

.pos-wave-tabs button {
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: #fff;
  font-weight: 900;
  min-height: 36px;
  padding: 6px 10px;
}

.pos-wave-tabs button.active {
  background: #fff;
  color: var(--brand-dark);
}

.pos-burst-body {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 420px);
  min-height: 0;
  overflow: hidden;
  padding: 12px;
}

.pos-burst-products,
.pos-burst-cart {
  min-height: 0;
}

.pos-burst-products {
  display: flex;
  flex-direction: column;
}

.pos-burst-toolbar {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 10px;
}

.pos-burst-toolbar strong,
.pos-burst-toolbar span {
  display: block;
}

.pos-burst-toolbar span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.pos-burst-products .pos-product-grid {
  align-content: start;
  flex: 1;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: auto;
  padding: 2px;
}

.pos-product-tile--burst {
  border-color: #cfe2cf;
  display: grid;
  grid-template-rows: auto minmax(34px, auto) auto;
  min-height: 0;
  padding: 8px;
}

.pos-product-tile--burst img,
.pos-product-tile--burst .pos-product-icon {
  aspect-ratio: auto;
  height: clamp(96px, 15vh, 150px);
  margin-bottom: 6px;
  object-fit: contain;
}

.pos-product-tile--burst strong {
  font-size: 13px;
  margin-bottom: 5px;
  min-height: 32px;
}

.pos-product-tile--burst .pos-product-price {
  font-size: 19px;
}

.pos-burst-cart {
  background: #fff;
  border: 1px solid #bfe0c4;
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(22, 66, 39, 0.16);
  display: flex;
  flex-direction: column;
  padding: 12px;
}

.pos-burst-cart-lines {
  border-bottom: 1px solid var(--line);
  flex: 1;
  min-height: 120px;
  overflow: auto;
  padding-bottom: 8px;
}

.cart-line--compact {
  grid-template-columns: minmax(0, 1fr) 34px 74px 34px;
}

.cart-line--compact strong {
  font-size: 13px;
}

.pos-burst-total {
  align-items: center;
  background: #0e5e3e;
  border-radius: 8px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  margin: 10px 0;
  padding: 12px;
}

.pos-burst-total span {
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.pos-burst-total strong {
  font-size: 34px;
  line-height: 1;
}

.pos-burst-pay {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pos-burst-pay .field {
  margin: 0;
  min-width: 0;
}

.pos-burst-pay .pos-cash-field {
  grid-column: 1 / -1;
}

.pos-burst-pay .field label {
  font-size: 10px;
}

.pos-burst-pay input,
.pos-burst-pay select {
  min-height: 42px;
  min-width: 0;
}

.pos-payment-extra {
  grid-column: 1 / -1;
}

.pos-payment-extra summary {
  align-items: center;
  background: #f8fcf5;
  border: 1px solid #cfe2cf;
  border-radius: 8px;
  color: var(--brand-dark);
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 7px;
  min-height: 38px;
  padding: 8px 10px;
}

.pos-payment-extra .form-grid {
  margin-top: 8px;
}

.pos-burst-pay .pos-submit-btn {
  font-size: 17px;
  grid-column: 1 / -1;
  min-height: 54px;
}

/* Modo rafaga: superficie de cobro cerrada, con controles y total persistentes. */
.pos-burst-modal {
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.pos-burst-controls {
  background: #f6fbf2;
  border-bottom: 1px solid #cfe2cf;
  display: grid;
  gap: 8px;
  padding: 8px 12px;
}

.pos-burst-controls .pos-burst-toolbar {
  margin: 0;
  padding: 7px 9px;
}

.pos-burst-controls .pos-budget-helper {
  margin: 0;
  padding: 7px 9px;
}

.pos-burst-body {
  display: block;
  overflow: hidden;
  padding: 8px 12px;
}

.pos-burst-products {
  height: 100%;
  overflow: hidden;
}

.pos-burst-products .pos-product-grid {
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 2px 4px 14px 2px;
}

.pos-product-tile--burst strong,
.pos-product-tile--burst .pos-product-price {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.pos-burst-footer {
  align-items: center;
  background: #fff;
  border-top: 1px solid #bfe0c4;
  box-shadow: 0 -12px 30px rgba(22, 66, 39, 0.12);
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(220px, 0.8fr) minmax(360px, 1.2fr) minmax(430px, 1.5fr);
  padding: 8px 12px;
  z-index: 5;
}

.pos-burst-footer .pos-burst-total {
  border: 0;
  cursor: pointer;
  margin: 0;
  min-height: 56px;
  text-align: left;
  width: 100%;
}

.pos-burst-footer .pos-burst-total:hover {
  background: #14784f;
}

.pos-burst-footer .pos-cash-field {
  margin: 0;
}

.pos-burst-footer .pos-cash-field > label {
  font-size: 10px;
}

.pos-burst-footer .pos-cash-buttons {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.pos-burst-footer .pos-cash-buttons button {
  font-size: 15px;
  min-height: 42px;
  padding: 5px;
}

.pos-burst-payment-row {
  align-items: end;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(105px, 1fr) 86px 86px minmax(130px, auto);
}

.pos-burst-payment-row label {
  color: var(--muted);
  display: grid;
  font-size: 10px;
  font-weight: 900;
  gap: 2px;
}

.pos-burst-payment-row input,
.pos-burst-payment-row select,
.pos-burst-payment-row button {
  min-height: 42px;
  min-width: 0;
}

.pos-burst-sheet-backdrop {
  align-items: center;
  background: rgba(5, 20, 12, 0.66);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 16px;
  position: absolute;
  z-index: 20;
}

.pos-qr-backdrop {
  position: fixed;
  z-index: 1200;
}

.pos-burst-sheet {
  background: #fff;
  border: 1px solid #bfe0c4;
  border-radius: 8px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.32);
  display: grid;
  gap: 12px;
  max-height: min(720px, 90vh);
  max-width: 620px;
  overflow: auto;
  padding: 16px;
  width: min(100%, 620px);
}

.pos-burst-sheet--small {
  max-width: 420px;
}

.pos-burst-sheet > header,
.pos-burst-sheet > footer {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.pos-burst-sheet h3,
.pos-burst-sheet .eyebrow {
  margin: 0;
}

.pos-burst-sheet-content {
  display: grid;
  gap: 7px;
  overflow: auto;
}

.pos-burst-sheet .cart-line {
  grid-template-columns: minmax(0, 1fr) 38px 90px auto;
}

.cart-line-actions {
  display: flex;
  gap: 4px;
}

.pos-account-qr-row {
  display: grid;
  gap: 8px;
  grid-template-columns: auto minmax(0, 1fr);
}

.pos-qr-backdrop video {
  aspect-ratio: 1 / 1;
  background: #0c1510;
  border-radius: 8px;
  object-fit: cover;
  width: 100%;
}

.ingredient-create-inline {
  justify-content: center;
  min-height: 34px;
  width: 100%;
}

.supplier-form {
  margin-top: 10px;
}

.supplier-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  margin-top: 12px;
}

.supplier-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(25, 74, 43, 0.08);
  display: grid;
  gap: 12px;
  padding: 14px;
}

.supplier-card-head {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.supplier-card h4 {
  font-size: 16px;
  margin: 0 0 5px;
}

.supplier-meta {
  display: grid;
  gap: 6px;
}

.supplier-meta span {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 12px;
  font-weight: 800;
  gap: 8px;
}

.supplier-meta i {
  color: var(--brand);
  width: 14px;
}

.supplier-stats {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.supplier-stats span {
  background: #f5fbf4;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  padding: 8px;
}

.supplier-stats strong {
  color: var(--text);
  display: block;
  font-size: 14px;
}

.supplier-search-panel {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 1fr) auto;
  margin-top: 12px;
}

.supplier-search-panel input {
  width: 100%;
}

.supplier-comparison-strip {
  background: #f6fbf4;
  border: 1px dashed #cfe2cf;
  border-radius: 8px;
  margin-top: 10px;
  padding: 10px;
}

.supplier-match-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.supplier-match-card {
  align-items: center;
  background: #fff;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  color: var(--text);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-height: auto;
  padding: 10px;
  text-align: left;
}

.supplier-match-card:hover {
  border-color: var(--brand);
  box-shadow: 0 8px 18px rgba(25, 74, 43, 0.08);
}

.supplier-match-card small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 800;
  margin-top: 3px;
}

.supplier-match-card b {
  color: var(--brand-dark);
  white-space: nowrap;
}

.supplier-directory-layout {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(240px, 330px) minmax(0, 1fr);
  margin-top: 12px;
}

.supplier-directory-panel,
.supplier-detail-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(25, 74, 43, 0.06);
  display: grid;
  gap: 12px;
  padding: 12px;
}

.supplier-directory-list {
  display: grid;
  gap: 8px;
  max-height: 680px;
  overflow: auto;
  padding-right: 2px;
}

.supplier-directory-item {
  align-items: center;
  background: #f8fcf5;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  color: var(--text);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-height: auto;
  padding: 10px;
  text-align: left;
}

.supplier-directory-item.active,
.supplier-directory-item:hover {
  background: #eaf6e7;
  border-color: var(--brand);
}

.supplier-directory-item small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  margin-top: 3px;
}

.supplier-detail-panel > .supplier-card-head h3 {
  font-size: 20px;
  margin: 0 0 5px;
}

.supplier-meta.detail {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ingredient-library-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.ingredient-library-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.ingredient-library-main {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.2fr);
}

.ingredient-library-card h4 {
  font-size: 16px;
  margin: 0 0 4px;
}

.ingredient-library-title {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-width: 0;
}

.ingredient-library-metrics {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ingredient-library-metrics span {
  background: #f6fbf4;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  padding: 8px;
}

.ingredient-library-metrics strong {
  color: var(--text);
  display: block;
  font-size: 14px;
}

.provider-price-stack {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.provider-price-pill {
  background: #f8fcf5;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 3px;
  min-height: auto;
  padding: 9px;
  text-align: left;
}

.provider-price-pill:hover:not(:disabled) {
  border-color: var(--brand);
}

.provider-price-pill:disabled {
  cursor: default;
  opacity: 1;
}

.provider-price-pill strong {
  color: var(--brand-dark);
  font-size: 15px;
}

.provider-price-pill small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.3;
}

.summary-panel {
  margin-bottom: 14px;
}

.summary-range-controls {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.summary-range-controls input {
  max-width: 155px;
}

.summary-range-controls .active {
  background: #173421;
  border-color: #173421;
  color: #fff;
}

.finance-kpi-grid {
  margin-top: 12px;
}

.theme-admin-panel {
  margin-bottom: 14px;
}

.theme-admin-panel .form-grid {
  margin-top: 8px;
}

.supplier-price-box,
.supplier-orders-box {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  padding-top: 10px;
}

.supplier-price-box h5,
.supplier-orders-box h5 {
  font-size: 13px;
  margin: 0;
}

.supplier-price-grid {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(220px, 1.4fr) 100px 110px 120px minmax(160px, 1fr) auto;
}

.supplier-price-grid .field,
.supplier-price-grid label {
  min-width: 0;
}

.supplier-price-list,
.supplier-order-list,
.purchase-group-list,
.planning-board {
  display: grid;
  gap: 8px;
}

.supplier-price-line,
.supplier-order-line,
.planning-card {
  align-items: center;
  background: #f8fcf5;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 9px;
}

.supplier-price-line span,
.supplier-order-line span,
.planning-card p {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
  margin: 3px 0 0;
}

.supplier-price-line p {
  color: var(--muted);
  font-size: 12px;
  margin: 4px 0 0;
}

.supplier-card-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.supplier-card-actions a,
.supplier-card-actions button {
  justify-content: center;
  margin-top: 0;
}

.purchase-order-form {
  display: grid;
  gap: 12px;
}

.purchase-order-lines {
  margin-top: 12px;
}

.purchase-order-lines table {
  min-width: 860px;
}

.purchase-filter-form {
  background: #f8fcf5;
  border: 1px solid #d8ebd8;
  border-radius: 8px;
  margin: 10px 0 12px;
  padding: 10px;
}

.filter-actions {
  justify-content: flex-start;
  margin-top: 8px;
}

.purchase-group-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.purchase-group-card summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  list-style: none;
  padding: 12px;
}

.purchase-group-card summary::-webkit-details-marker {
  display: none;
}

.purchase-group-card summary > div:first-child span,
.purchase-group-card summary > div:first-child p {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
  margin: 3px 0 0;
}

.purchase-group-summary {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  min-width: 0;
}

.purchase-group-actions {
  margin-left: 4px;
}

.purchase-group-card .table-wrap {
  border-top: 1px solid var(--line);
  padding: 0 12px 12px;
}

.purchase-plan-form {
  margin-top: 10px;
}

.planning-board {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  margin-top: 12px;
}

.planning-card {
  align-items: start;
  min-height: 140px;
}

.planning-card h4 {
  font-size: 16px;
  margin: 8px 0 0;
}

.planning-card.urgente {
  background: #fff5f0;
  border-color: #f7c4aa;
}

.asset-grid,
.notice-admin-list {
  display: grid;
  gap: 12px;
}

.asset-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.asset-card,
.notice-admin-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.asset-thumb,
.notice-thumb {
  background: #eef5ea;
  border-bottom: 1px solid var(--line);
  min-height: 150px;
}

.asset-thumb img {
  display: block;
  height: 180px;
  object-fit: cover;
  width: 100%;
}

.notice-thumb img {
  aspect-ratio: 3 / 1;
  display: block;
  min-height: 160px;
  object-fit: cover;
  width: 100%;
}

.notice-thumb .photo-placeholder {
  min-height: 160px;
  width: 100%;
}

.asset-card-body,
.notice-admin-card > div:last-child {
  padding: 12px;
}

.asset-card-body p {
  line-height: 1.45;
  margin: 8px 0;
}

.asset-actions {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.asset-actions input[type="file"] {
  max-width: 100%;
}

.notice-admin-card {
  display: grid;
  grid-template-columns: 1fr;
}

.notice-admin-card h3 {
  margin: 8px 0 6px;
}

.full-width {
  margin-top: 10px;
  width: 100%;
}

.public-shell {
  margin: 0 auto;
  max-width: 1120px;
  padding: 18px;
}

.menu-explainer-banner {
  margin: 0 0 14px;
}

.menu-explainer-banner img {
  aspect-ratio: 1916 / 821;
  border: 1px solid #eadfba;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(98, 77, 26, 0.08);
  display: block;
  object-fit: contain;
  width: 100%;
}

.menu-explainer-placeholder {
  align-items: center;
  aspect-ratio: 1916 / 821;
  background:
    linear-gradient(135deg, rgba(255, 211, 78, 0.16), rgba(54, 169, 225, 0.14)),
    #fffdf6;
  border: 1px dashed #d7c98d;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(98, 77, 26, 0.08);
  color: #143c27;
  display: grid;
  gap: 8px;
  justify-items: center;
  min-height: 168px;
  overflow: hidden;
  padding: 20px;
  text-align: center;
  width: 100%;
}

.menu-explainer-placeholder span {
  align-items: center;
  background: #fff;
  border: 1px solid #d8e4d5;
  border-radius: 8px;
  color: var(--brand-dark);
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 7px;
  padding: 8px 10px;
}

.menu-explainer-placeholder strong {
  font-size: 32px;
  line-height: 1.05;
  max-width: 720px;
}

.menu-explainer-placeholder small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.community-registration-card {
  align-items: center;
  background: #effcf3;
  border: 1px solid #b9e5c7;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: 46px minmax(0, 1fr);
  padding: 12px;
}

.community-registration-card i {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: #dcf7e6;
  border: 1px solid #b9e5c7;
  border-radius: 8px;
  color: var(--brand);
  display: inline-flex;
  font-size: 20px;
  justify-content: center;
  width: 46px;
}

.community-registration-card strong {
  display: block;
  font-size: 15px;
  line-height: 1.2;
}

.community-registration-card span {
  color: var(--muted);
  display: block;
  font-size: 12px;
  line-height: 1.35;
  margin-top: 3px;
}

.checkbox-row {
  align-items: center;
  background: #fffdf4;
  border: 1px solid #f0d78c;
  border-radius: 8px;
  cursor: pointer;
  flex-direction: row;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
}

.checkbox-row input {
  flex: 0 0 auto;
  min-height: 0;
  width: auto;
}

.checkbox-row span {
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.3;
}

.service-file-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-file-grid input[type="file"] {
  font-size: 12px;
  min-height: 38px;
  padding: 7px;
}

.school-home {
  background: #fff8df;
}

.nav-pill {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: inline-flex;
  font-weight: 850;
  gap: 8px;
  min-height: 38px;
  padding: 8px 12px;
  text-decoration: none;
}

.nav-pill.active,
.nav-pill:hover {
  background: #173421;
  border-color: #173421;
  color: #fff;
}

.home-topbar {
  position: sticky;
}

.home-hero {
  background: #72cef0;
  color: #fff;
  display: block;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.home-hero-bg {
  background: url("/escolar/henry-ford/assets/henry-ford-camila-escolar-hero.jpg") center / cover no-repeat;
  inset: 0;
  position: absolute;
}

.home-hero-image {
  aspect-ratio: 4 / 1;
  background: #72cef0;
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  width: 100%;
}

.school-public[class*="home-theme-"] .public-topbar {
  border-bottom-color: color-mix(in srgb, var(--theme-accent, #168f5c) 34%, var(--line));
}

.school-public[class*="home-theme-"] .nav-pill.active,
.school-public[class*="home-theme-"] .primary-btn {
  background: var(--theme-accent, #168f5c);
  border-color: var(--theme-accent, #168f5c);
}

.school-public[class*="home-theme-"] .home-banner-zone,
.school-public[class*="home-theme-"] .notice-hero {
  border-top: 4px solid color-mix(in srgb, var(--theme-accent, #168f5c) 58%, #fff);
}

.school-public.home-theme-fiestas_patrias {
  --theme-soft: #f4fff8;
}

.school-public.home-theme-fiestas_patrias {
  background:
    linear-gradient(90deg, rgba(0, 104, 71, 0.13), rgba(255, 255, 255, 0.9) 46%, rgba(206, 17, 38, 0.13)),
    #fffdf4;
}

.school-public.home-theme-fiestas_patrias .home-banner-zone {
  background:
    linear-gradient(90deg, rgba(0, 104, 71, 0.08), rgba(255, 255, 255, 0.76) 48%, rgba(206, 17, 38, 0.08)),
    var(--theme-soft);
}

.school-public.home-theme-fiestas_patrias .home-strip {
  background:
    linear-gradient(90deg, rgba(0, 104, 71, 0.18), rgba(255, 255, 255, 0.84) 50%, rgba(206, 17, 38, 0.18)),
    #fff8db;
}

.seasonal-theme-layer--fiestas_patrias .seasonal-theme-icon {
  color: #006847;
  font-size: var(--theme-size, 26px);
}

.seasonal-theme-layer--fiestas_patrias .seasonal-theme-icon:nth-child(3n) {
  color: #ce1126;
}

.seasonal-theme-layer--fiestas_patrias .seasonal-theme-icon:nth-child(4n) {
  color: #b98b20;
}

.school-public.home-theme-dia_nino {
  --theme-soft: #f0f8ff;
}

.school-public.home-theme-navidad {
  --theme-soft: #fff7f7;
}

.school-public.home-theme-amor_amistad {
  --theme-soft: #fff4f8;
}

.school-public.home-theme-ano_nuevo {
  --theme-soft: #f7fbff;
}

.school-public.home-theme-dia_muertos {
  --theme-soft: #fff8f1;
}

.seasonal-theme-layer {
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: fixed;
  z-index: 60;
}

.seasonal-theme-icon {
  animation: seasonalFloat var(--theme-duration, 8s) ease-in-out infinite;
  animation-delay: var(--theme-delay, 0s);
  color: var(--theme-accent, #168f5c);
  display: inline-flex;
  filter: drop-shadow(0 5px 8px rgba(23, 52, 33, 0.2));
  font-size: var(--theme-size, 20px);
  left: var(--theme-left, 50%);
  opacity: 0;
  position: absolute;
  top: var(--theme-top, 50%);
  transform: translate3d(0, 24px, 0) rotate(-10deg);
}

.seasonal-theme-icon:nth-child(even) {
  color: var(--theme-accent-2, #2da8d8);
}

@keyframes seasonalFloat {
  0% {
    opacity: 0;
    transform: translate3d(0, 24px, 0) rotate(-10deg) scale(0.92);
  }
  18%,
  72% {
    opacity: 0.62;
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--theme-drift, 30px), -54px, 0) rotate(16deg) scale(1.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .seasonal-theme-layer {
    display: none;
  }
}

.home-hero-copy {
  align-self: center;
  max-width: 690px;
  padding: 52px clamp(22px, 8vw, 112px);
  position: relative;
  z-index: 1;
}

.home-hero-copy .eyebrow {
  color: #ccebd5;
}

.home-hero h2 {
  font-size: clamp(40px, 6vw, 76px);
  line-height: 0.95;
  margin-bottom: 18px;
}

.home-hero p:not(.eyebrow) {
  color: #eef8ee;
  font-size: 18px;
  line-height: 1.55;
  margin-bottom: 24px;
  max-width: 620px;
}

.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.home-hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
}

.home-hero-badges span {
  align-items: center;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 999px;
  color: #173421;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 7px;
  min-height: 32px;
  padding: 7px 12px;
}

.home-hero-badges span:nth-child(1) i {
  color: var(--kid-yellow);
}

.home-hero-badges span:nth-child(2) i {
  color: var(--kid-coral);
}

.home-hero-badges span:nth-child(3) i {
  color: var(--kid-sky);
}

.home-strip {
  background:
    linear-gradient(135deg, rgba(255, 211, 78, 0.25), rgba(54, 169, 225, 0.12)),
    #fffdf5;
  border-bottom: 1px solid #eadfba;
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 18px clamp(16px, 4vw, 52px);
}

.home-strip a {
  aspect-ratio: 3 / 1;
  background: transparent;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  color: var(--text);
  display: block;
  font-weight: 850;
  min-height: 0;
  min-width: 0;
  outline: none;
  padding: 0;
  text-align: center;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  width: 100%;
}

.home-strip a:hover {
  transform: translateY(-2px);
}

.home-strip a:focus-visible {
  box-shadow: 0 0 0 4px rgba(54, 169, 225, 0.28);
}

.home-strip a img {
  background: #fffef8;
  border-radius: 999px;
  display: block;
  filter: drop-shadow(0 14px 16px rgba(31, 91, 47, 0.16));
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

.home-strip a:hover img {
  filter: drop-shadow(0 17px 20px rgba(31, 91, 47, 0.22));
}

.home-strip i,
.home-feature i,
.home-action-card i {
  color: var(--brand);
}

.home-strip-card--orders {
  border-color: #b9e5c7;
}

.home-strip a:nth-child(2) i,
.home-feature:nth-child(2) i,
.home-action-card:nth-child(2) i {
  color: var(--kid-sky);
}

.home-strip-card--menus {
  border-color: #bfe6ff;
}

.home-strip a:nth-child(3) i,
.home-feature:nth-child(3) i,
.home-action-card:nth-child(3) i {
  color: #7952d8;
}

.home-strip-card--register {
  border-color: #d8c8ff;
}

.home-strip-card--whatsapp {
  border-color: #b9e5c7;
}

.home-strip a:nth-child(5) i,
.home-feature:nth-child(4) i,
.home-action-card:nth-child(4) i {
  color: var(--kid-coral);
}

.home-strip-card--access {
  border-color: #ffd0cc;
}

.home-banner-zone {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1560px;
  padding: 28px 28px 0;
}

.home-dashboard-row {
  align-items: stretch;
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.birthday-banner,
.mini-banner {
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.birthday-banner {
  align-items: stretch;
  align-content: start;
  background: #fff;
  border: 2px solid #f4ce55;
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
  min-height: 156px;
  padding: 18px;
}

.birthday-carousel {
  display: grid;
  min-height: 190px;
  overflow: hidden;
  position: relative;
}

.birthday-carousel--image-header {
  min-height: 0;
}

.birthday-slide {
  align-items: center;
  display: none;
  gap: 18px;
  grid-template-columns: auto minmax(0, 1fr);
}

.birthday-slide.active {
  display: grid;
}

.birthday-slide--image.active {
  display: block;
}

.birthday-slide-img {
  aspect-ratio: 4 / 3;
  border: 2px solid #f3c94a;
  border-radius: 8px;
  object-fit: cover;
  width: 170px;
}

.birthday-carousel--image-header .birthday-slide-img,
.birthday-slide--image .birthday-slide-img {
  aspect-ratio: 3 / 1;
  background: #fffaf0;
  border: 0;
  box-shadow: 0 8px 18px rgba(131, 89, 18, 0.08);
  display: block;
  height: 100%;
  max-height: none;
  object-fit: cover;
  width: 100%;
}

.birthday-banner h2 {
  font-size: 28px;
  line-height: 1.08;
  margin-bottom: 8px;
}

.birthday-banner p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 0;
}

.birthday-dynamic {
  border-top: 1px dashed #ead180;
  display: grid;
  gap: 8px;
  padding-top: 14px;
}

.birthday-toolbar {
  align-items: center;
  background: #fff7d8;
  border: 1px solid #f2d770;
  border-radius: 999px;
  display: inline-flex;
  gap: 4px;
  justify-self: start;
  padding: 4px;
}

.birthday-range-btn {
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #6e5a16;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 900;
  min-height: 30px;
  padding: 0 14px;
}

.birthday-range-btn.active {
  background: #f4ce55;
  box-shadow: 0 4px 10px rgba(137, 104, 12, 0.16);
  color: #173421;
}

.birthday-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.birthday-person-chip {
  background: #fff8df;
  border: 1px solid #efd069;
  border-radius: 999px;
  color: #173421;
  display: inline-flex;
  flex-direction: column;
  gap: 1px;
  min-width: 140px;
  padding: 8px 12px;
}

.birthday-person-chip b {
  font-size: 12px;
  line-height: 1.15;
}

.birthday-person-chip small {
  color: #8a6c00;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.1;
}

.banner-icon {
  align-items: center;
  background: #fff3ba;
  border: 2px solid #f3c94a;
  border-radius: 8px;
  color: #c75d35;
  display: inline-flex;
  font-size: 32px;
  height: 76px;
  justify-content: center;
  width: 76px;
}

.mini-banner {
  background: #eaf8ff;
  border: 1px solid #b8dff3;
  display: grid;
  gap: 12px;
  min-height: 100px;
  padding: 18px;
}

.mini-banner.warm {
  background: #fff1ee;
  border-color: #ffc4ba;
}

.mini-banner-image {
  aspect-ratio: 3 / 1;
  background: #fff7f3;
  border-radius: 8px;
  display: block;
  object-fit: cover;
  width: 100%;
}

.notices-home-banner {
  background: #fff7f3;
}

.mini-banner i {
  color: var(--kid-sky);
  font-size: 22px;
}

.mini-banner.warm i {
  color: var(--kid-coral);
}

.mini-banner strong {
  font-size: 15px;
}

.mini-banner span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.mini-banner-head {
  align-items: flex-start;
  display: flex;
  gap: 10px;
}

.menu-product-carousel {
  display: grid;
  gap: 8px;
  max-height: 320px;
  overflow: auto;
  padding-right: 2px;
}

.menu-image-banner-card {
  background: #eaf8ff;
  border-color: #b8dff3;
  color: inherit;
  overflow: hidden;
  padding: 16px;
  text-decoration: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.menu-image-banner-card:hover,
.menu-image-banner-card:focus-visible {
  border-color: var(--brand);
  box-shadow: 0 14px 32px rgba(22, 143, 92, 0.16);
  outline: none;
  transform: translateY(-1px);
}

.menu-image-banner-card--tomorrow {
  background: #fff9e8;
  border-color: #f0d78c;
}

.menu-image-banner-card--tomorrow i {
  color: #d08a10;
}

.menu-banner-head {
  align-items: center;
  justify-content: space-between;
}

.menu-banner-heading {
  align-items: flex-start;
  color: inherit;
  display: flex;
  gap: 10px;
  min-width: 0;
  text-decoration: none;
}

.menu-banner-heading > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.menu-banner-heading small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}

.menu-refresh-btn {
  background: rgba(255, 255, 255, 0.72);
  flex: 0 0 auto;
}

.menu-refresh-btn i {
  color: var(--brand);
  font-size: 15px;
}

.menu-refresh-btn.is-loading i {
  animation: soft-spin 700ms linear infinite;
}

.menu-card-header-link {
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.18);
  border-radius: 8px;
  display: block;
  margin-top: 12px;
  overflow: hidden;
  text-decoration: none;
}

.menu-card-header-link[hidden] {
  display: none;
}

.menu-card-header-img {
  aspect-ratio: 3 / 1;
  background: #fff;
  display: block;
  object-fit: contain;
  width: 100%;
}

.menu-card-header-link:not([hidden]) + .menu-image-link {
  margin-top: 12px;
}

.menu-image-link {
  color: inherit;
  display: block;
  text-decoration: none;
}

.menu-image-strip {
  aspect-ratio: 16 / 9;
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.18);
  border-radius: 8px;
  display: block;
  min-height: 320px;
  overflow: hidden;
  position: relative;
}

.menu-image-slide {
  background: #fff;
  display: block;
  inset: 0;
  opacity: 0;
  position: absolute;
  transform: scale(1.015);
  transition: opacity 520ms ease, transform 780ms ease;
}

.menu-image-slide.active {
  opacity: 1;
  transform: scale(1);
  z-index: 1;
}

.menu-image-slide img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.menu-carousel-dots {
  align-items: center;
  bottom: 10px;
  display: flex;
  gap: 6px;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  z-index: 2;
}

.menu-carousel-dot {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(23, 52, 33, 0.18);
  border-radius: 99px;
  box-shadow: 0 2px 5px rgba(23, 52, 33, 0.16);
  display: inline-flex;
  height: 7px;
  width: 7px;
}

.menu-carousel-dot.active {
  background: var(--brand);
  border-color: #fff;
  width: 18px;
}

.menu-image-empty {
  background: rgba(255, 255, 255, 0.72);
  border: 1px dashed rgba(22, 143, 92, 0.24);
  min-height: 100%;
}

.upcoming-home-banner {
  background: linear-gradient(180deg, #fff7d7 0%, #fffdf5 58%, #fff8e8 100%);
  border-color: #ecd28c;
  overflow: hidden;
}

.upcoming-carousel-head {
  align-items: center;
  background: linear-gradient(135deg, #ffe59c, #fff7db);
  border: 1px solid rgba(208, 138, 16, 0.24);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(128, 89, 0, 0.1);
  display: grid;
  gap: 5px;
  justify-content: center;
  padding: 14px;
  text-align: center;
}

.upcoming-carousel-head strong {
  color: #8a5b00;
  font-size: clamp(20px, 2.7vw, 28px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.05;
  text-transform: uppercase;
}

.upcoming-carousel-head span {
  color: #143c27;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.15;
}

.upcoming-products-list {
  overflow: hidden;
}

.upcoming-products-carousel {
  overflow: hidden;
  position: relative;
}

.upcoming-products-track {
  display: grid;
  gap: 12px;
  grid-auto-columns: calc((100% - 12px) / 2);
  grid-auto-flow: column;
  grid-template-columns: none;
  overflow-x: auto;
  padding: 2px 2px 10px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.upcoming-products-track::-webkit-scrollbar {
  display: none;
}

.upcoming-product-image {
  background: #fff;
  border: 1px solid rgba(208, 138, 16, 0.26);
  border-radius: 8px;
  display: block;
  padding: 6px;
  scroll-snap-align: start;
  text-decoration: none;
}

.upcoming-product-image:hover,
.upcoming-product-image:focus-visible {
  border-color: #d08a10;
  box-shadow: 0 10px 22px rgba(128, 89, 0, 0.12);
  outline: none;
}

.upcoming-product-image img {
  aspect-ratio: 4 / 3;
  background: #fffdf5;
  border-radius: 8px;
  display: block;
  min-height: 260px;
  object-fit: contain;
  width: 100%;
}

.upcoming-empty {
  background: rgba(255, 255, 255, 0.74);
  border: 1px dashed rgba(208, 138, 16, 0.32);
}

.takeaway-home-banner {
  background: linear-gradient(180deg, #fffaf0 0%, #fffdf8 100%);
  border-color: #d8b47a;
  overflow: hidden;
  padding: 10px;
}

.takeaway-banner-link {
  border-radius: 8px;
  color: inherit;
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.takeaway-banner-link:hover,
.takeaway-banner-link:focus-visible {
  box-shadow: 0 12px 28px rgba(85, 47, 16, 0.14);
  outline: none;
}

.takeaway-banner-link img {
  aspect-ratio: 16 / 9;
  background: #fff7ea;
  border-radius: 8px;
  display: block;
  object-fit: contain;
  width: 100%;
}

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

.menu-mini-product {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.2);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 10px;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  min-height: 72px;
  padding: 8px;
  text-decoration: none;
}

.menu-mini-product img,
.menu-mini-icon {
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  width: 58px;
}

.menu-mini-product img {
  object-fit: cover;
}

.menu-mini-icon {
  align-items: center;
  background: #eef5ea;
  color: var(--brand);
  display: flex;
  justify-content: center;
}

.menu-mini-product small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  margin-top: 2px;
}

.menu-mini-product b {
  color: var(--brand);
  font-size: 15px;
}

.announcement-list {
  display: grid;
  gap: 8px;
}

.announcement-mini {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(204, 63, 63, 0.16);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 4px;
  padding: 10px;
  text-decoration: none;
}

.announcement-mini span {
  font-size: 12px;
}

.community-home-banner {
  background: linear-gradient(135deg, #e8fbef 0%, #f7fff6 56%, #fff8dc 100%);
  border-color: #b9e5c7;
  grid-column: 1 / -1;
  padding: 20px;
}

.community-home-banner i {
  color: var(--brand);
}

.community-directory-list {
  min-width: 0;
  overflow: hidden;
  padding-bottom: 4px;
  width: 100%;
  scrollbar-width: thin;
}

.community-carousel-track {
  display: flex;
  gap: 0;
  min-width: 0;
  overflow-x: auto;
  padding: 2px 2px 8px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

.community-carousel-track--featured {
  scrollbar-width: none;
}

.community-carousel-track--featured::-webkit-scrollbar {
  display: none;
}

.community-carousel-track--empty {
  display: grid;
  gap: 14px;
  grid-auto-flow: unset;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: visible;
}

.community-card-header-link {
  border: 1px solid rgba(22, 143, 92, 0.18);
  border-radius: 8px;
  display: block;
  margin: 4px 2px 12px;
  overflow: hidden;
  text-decoration: none;
}

.community-card-header-img {
  aspect-ratio: 2156 / 372;
  background: #f8fbf6;
  display: block;
  height: auto;
  max-height: 210px;
  object-fit: contain;
  width: 100%;
}

.community-mini {
  align-content: start;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(243, 255, 242, 0.96));
  border: 1px solid rgba(22, 143, 92, 0.22);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(220px, 40%) minmax(0, 1fr);
  min-height: 238px;
  padding: 16px;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  text-decoration: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.community-mini--featured {
  flex: 0 0 100%;
  min-height: 286px;
  width: 100%;
  box-shadow: 0 18px 36px rgba(23, 52, 33, 0.08);
}

.community-mini:hover,
.community-mini:focus-visible {
  border-color: rgba(22, 143, 92, 0.42);
  box-shadow: 0 16px 30px rgba(23, 52, 33, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.community-mini-media,
.community-mini-copy {
  min-width: 0;
}

.community-mini-media {
  display: block;
}

.community-mini-copy {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.community-mini img,
.community-mini-icon {
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  height: 100%;
  min-height: 240px;
  width: 100%;
}

.community-mini img {
  background: #fff;
  object-fit: contain;
}

.community-mini-icon {
  align-items: center;
  background: #dcf7e6;
  color: var(--brand);
  display: inline-flex;
  font-size: 34px;
  justify-content: center;
}

.community-mini-kicker {
  align-self: flex-start;
  background: #e4f7ec;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 999px;
  color: var(--brand-dark);
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 8px;
  padding: 5px 10px;
  text-transform: uppercase;
}

.community-mini strong {
  display: block;
  font-size: 24px;
  line-height: 1.18;
}

.community-mini small {
  color: var(--muted);
  display: block;
  font-size: 15px;
  line-height: 1.35;
  margin-top: 4px;
}

.community-mini p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
  margin: 10px 0 0;
  max-width: 56ch;
}

.community-mini-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.community-mini-meta span {
  align-items: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 999px;
  color: var(--brand-dark);
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  gap: 5px;
  line-height: 1.2;
  padding: 5px 9px;
}

.community-mini-meta i {
  color: var(--brand);
}

.community-mini em {
  align-self: flex-start;
  background: var(--brand);
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  font-size: 13px;
  font-style: normal;
  font-weight: 900;
  margin-top: 12px;
  padding: 9px 12px;
  text-transform: uppercase;
}

.community-carousel-track--empty .community-mini {
  background: rgba(255, 255, 255, 0.86);
  box-shadow: none;
  gap: 10px;
  grid-template-columns: 74px minmax(0, 1fr);
  min-height: 96px;
  padding: 10px;
}

.community-carousel-track--empty .community-mini img,
.community-carousel-track--empty .community-mini-icon {
  aspect-ratio: 1;
  height: 74px;
  min-height: 0;
  width: 74px;
}

.community-carousel-track--empty .community-mini strong {
  font-size: 15px;
}

.community-carousel-track--empty .community-mini small {
  font-size: 13px;
}

.access-portal-shell {
  max-width: 1180px;
}

.portal-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
}

.portal-card {
  align-content: start;
  display: grid;
  gap: 12px;
}

.portal-card--identity {
  grid-column: 1 / -1;
}

.portal-card--wide {
  grid-column: 1 / -1;
}

.portal-kpis {
  margin-top: 14px;
}

.portal-interest-list,
.portal-community-controls {
  display: grid;
  gap: 8px;
}

.portal-family-list {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.portal-family-list--compact {
  grid-template-columns: 1fr;
}

.portal-family-card {
  align-items: center;
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: 74px minmax(0, 1fr);
  padding: 10px;
}

.portal-family-card--compact {
  grid-template-columns: 56px minmax(0, 1fr);
}

.portal-family-photo {
  aspect-ratio: 1;
  background: #e7f7ed;
  border-radius: 8px;
  display: block;
  overflow: hidden;
}

.portal-family-photo img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.portal-family-card strong,
.portal-family-card small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.portal-family-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin: 3px 0 8px;
}

.portal-community-module-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portal-community-module-card {
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 8px;
  text-decoration: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.portal-community-module-card:hover,
.portal-community-module-card:focus-visible {
  border-color: rgba(22, 143, 92, 0.42);
  box-shadow: 0 12px 24px rgba(23, 52, 33, 0.1);
  outline: none;
  transform: translateY(-1px);
}

.portal-community-module-card img {
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  display: block;
  object-fit: cover;
  width: 100%;
}

.portal-community-module-card strong,
.portal-community-module-card small {
  display: block;
  min-width: 0;
}

.portal-community-module-card strong {
  color: var(--brand-dark);
  font-size: 14px;
  line-height: 1.2;
}

.portal-community-module-card strong i {
  color: var(--brand);
  margin-right: 4px;
}

.portal-community-module-card small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  margin-top: 4px;
}

.portal-talent-admin {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
}

.portal-talent-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-talent-card {
  align-content: start;
}

.portal-talent-card.is-muted {
  background: #f7f9f5;
  opacity: 0.72;
}

.portal-talent-card .secondary-btn {
  justify-content: center;
  width: 100%;
}

.portal-interest-list > div,
.portal-community-row {
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 3px;
  padding: 10px;
}

.portal-interest-list span,
.portal-community-row small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.portal-interest-list strong {
  color: var(--brand-dark);
}

.portal-community-row {
  align-items: center;
  cursor: pointer;
  grid-template-columns: auto minmax(0, 1fr);
}

.portal-community-row input {
  inline-size: 18px;
  block-size: 18px;
}

.portal-community-row span {
  display: grid;
  gap: 2px;
}

.credential-print-shell {
  max-width: 760px;
}

.credential-layout {
  display: grid;
  gap: 18px;
  justify-items: center;
}

.credential-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  width: 100%;
}

.credential-card-print {
  background: linear-gradient(135deg, #f5fff5, #fff8dd);
  border: 2px solid #18462e;
  border-radius: 18px;
  box-shadow: var(--shadow);
  color: var(--text);
  display: grid;
  gap: 14px;
  max-width: 540px;
  overflow: hidden;
  padding: 18px;
  width: 100%;
}

.credential-card-head,
.credential-card-body,
.credential-card-qr {
  align-items: center;
  display: flex;
  gap: 14px;
}

.credential-card-head img {
  height: 44px;
  object-fit: contain;
  width: 44px;
}

.credential-card-head p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.credential-photo {
  aspect-ratio: 1 / 1;
  border: 3px solid #fff;
  border-radius: 14px;
  object-fit: cover;
  width: 130px;
}

.credential-card-qr {
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid var(--line);
  border-radius: 12px;
  justify-content: space-between;
  padding: 12px;
}

.credential-card-qr img {
  height: 130px;
  object-fit: contain;
  width: 130px;
}

.credential-card-qr p {
  color: var(--muted);
  line-height: 1.35;
  margin: 0;
}

.community-result-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 14px;
}

.community-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-rows: auto 1fr auto;
  min-height: 430px;
  min-width: 0;
  padding: 14px;
}

.community-card--profile {
  cursor: pointer;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.community-card--profile:hover,
.community-card--profile:focus-visible {
  border-color: rgba(22, 143, 92, 0.44);
  box-shadow: 0 18px 32px rgba(23, 52, 33, 0.14);
  outline: none;
  transform: translateY(-1px);
}

.community-card > img,
.community-card-icon {
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  width: 100%;
}

.community-card > img {
  object-fit: cover;
}

.community-card-icon {
  align-items: center;
  background: #dcf7e6;
  color: var(--brand);
  display: flex;
  font-size: 38px;
  justify-content: center;
}

.community-card p {
  color: var(--muted);
  line-height: 1.45;
}

.community-card-rating,
.community-stars {
  align-items: center;
  color: #d08a10;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.community-card-rating {
  margin: 8px 0;
}

.community-card-rating small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.community-card-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.community-modal-open {
  overflow: hidden;
}

.community-modal-backdrop {
  align-items: center;
  background: rgba(6, 24, 16, 0.68);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 10000;
}

.community-profile-modal {
  background: #fffdf7;
  border: 1px solid rgba(22, 143, 92, 0.22);
  border-radius: 8px;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
  color: var(--text);
  display: grid;
  gap: 18px;
  max-height: min(92vh, 980px);
  max-width: 1080px;
  overflow: auto;
  padding: 18px;
  position: relative;
  width: min(100%, 1080px);
}

.community-modal-close {
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 1;
}

.community-profile-hero {
  align-items: stretch;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.05fr);
}

.community-profile-hero > img,
.community-profile-placeholder {
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  width: 100%;
}

.community-profile-hero > img {
  object-fit: cover;
}

.community-profile-placeholder {
  align-items: center;
  background: #dcf7e6;
  color: var(--brand);
  display: flex;
  font-size: 54px;
  justify-content: center;
}

.community-profile-hero h2 {
  font-size: 34px;
  line-height: 1.05;
  margin: 10px 0;
  padding-right: 42px;
}

.community-profile-hero p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.community-profile-owner {
  align-items: center;
  color: var(--brand-dark);
  display: flex;
  font-weight: 900;
  gap: 8px;
  margin-top: 14px;
}

.community-profile-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
}

.community-profile-main,
.community-profile-side {
  display: grid;
  gap: 12px;
}

.community-profile-gallery {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.community-profile-gallery img {
  aspect-ratio: 4 / 3;
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  object-fit: cover;
  width: 100%;
}

.community-rating-panel,
.community-comments-panel,
.community-profile-empty {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
}

.community-rating-panel {
  display: grid;
  gap: 8px;
}

.community-rating-panel > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.community-rating-panel > strong {
  color: var(--brand-dark);
  font-size: 42px;
  line-height: 1;
}

.community-rating-panel small {
  color: var(--muted);
  font-weight: 800;
}

.community-comments-panel {
  display: grid;
  gap: 10px;
}

.community-comment {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 6px;
  padding-top: 10px;
}

.community-comment:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.community-comment > div {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.community-comment span {
  color: #d08a10;
  display: inline-flex;
  gap: 3px;
}

.community-comment p {
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
}

.community-comment small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.community-profile-empty {
  align-items: center;
  color: var(--muted);
  display: flex;
  gap: 8px;
  justify-content: center;
  min-height: 110px;
  text-align: center;
}

.community-module-page .public-shell {
  max-width: 1180px;
}

.community-module-shell {
  display: grid;
  gap: 18px;
}

.community-module-hero {
  align-items: stretch;
  background: linear-gradient(135deg, #f4fff5 0%, #fffdf6 54%, #eef8ff 100%);
  border: 1px solid rgba(22, 143, 92, 0.22);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(23, 52, 33, 0.08);
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 0.58fr);
  overflow: hidden;
  padding: 18px;
}

.community-module-hero--teacher {
  background: linear-gradient(135deg, #effaf4 0%, #ffffff 52%, #edf7ff 100%);
}

.community-module-hero--family {
  background: linear-gradient(135deg, #fff8e2 0%, #ffffff 50%, #eaf8f1 100%);
}

.community-module-hero--talent {
  background: linear-gradient(135deg, #f2fbef 0%, #fffef7 50%, #fff0e9 100%);
}

.community-module-hero-media {
  border-radius: 8px;
  min-height: 0;
  overflow: hidden;
}

.community-module-hero-media img {
  aspect-ratio: 4 / 5;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.community-module-hero-copy {
  align-content: center;
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 10px min(3vw, 26px);
}

.community-module-hero-copy h2 {
  color: #123f29;
  font-size: clamp(34px, 4vw, 58px);
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
}

.community-module-hero-copy p {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.5;
  margin: 0;
  max-width: 62ch;
}

.module-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.community-module-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.community-module-grid--family {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.community-module-card {
  align-content: start;
  display: grid;
  gap: 10px;
  min-width: 0;
}

.community-module-card h3,
.community-module-chat h2 {
  color: #123f29;
  letter-spacing: 0;
  margin: 0;
}

.community-module-card p,
.community-module-chat p,
.talent-video-card p {
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
}

.module-icon {
  align-items: center;
  background: #e6f8ed;
  border-radius: 8px;
  color: var(--brand);
  display: inline-flex;
  font-size: 22px;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.community-module-chat,
.community-video-workbench {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
}

.module-chat-preview {
  background: #f7fbf4;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 14px;
}

.module-chat-message {
  border-radius: 8px;
  display: grid;
  gap: 4px;
  max-width: 84%;
  padding: 10px 12px;
}

.module-chat-message strong {
  font-size: 12px;
  text-transform: uppercase;
}

.module-chat-message.teacher {
  background: #0f8a53;
  color: #fff;
}

.module-chat-message.family {
  background: #fff;
  border: 1px solid var(--line);
  justify-self: end;
}

.module-chat-mode {
  align-items: center;
  background: #fff8de;
  border: 1px solid rgba(208, 138, 16, 0.22);
  border-radius: 8px;
  color: #775100;
  display: flex;
  gap: 8px;
  font-weight: 900;
  padding: 10px 12px;
}

.community-module-card--video {
  align-self: start;
}

.talent-video-grid {
  display: grid;
  gap: 14px;
}

.talent-video-card {
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.22);
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 12px;
  min-width: 0;
  overflow: hidden;
  padding: 12px;
  text-decoration: none;
}

.talent-video-card--active:hover,
.talent-video-card--active:focus-visible {
  border-color: rgba(22, 143, 92, 0.46);
  box-shadow: 0 14px 28px rgba(23, 52, 33, 0.12);
  outline: none;
}

.talent-video-thumb {
  border-radius: 8px;
  display: block;
  overflow: hidden;
  position: relative;
}

.talent-video-thumb img {
  aspect-ratio: 16 / 9;
  background: #f7fbf4;
  display: block;
  object-fit: cover;
  width: 100%;
}

.talent-video-thumb span {
  align-items: center;
  background: rgba(18, 63, 41, 0.88);
  border: 2px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 20px;
  height: 56px;
  justify-content: center;
  left: 50%;
  padding-left: 3px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
}

.talent-video-card strong {
  color: #123f29;
  font-size: 20px;
  line-height: 1.12;
}

.talent-video-card small {
  color: var(--brand);
  display: block;
  font-weight: 900;
  margin-top: 6px;
}

.home-section {
  margin: 0 auto;
  max-width: 1560px;
  padding: 58px 22px;
}

.section-heading {
  align-items: end;
  display: flex;
  justify-content: space-between;
  margin-bottom: 22px;
}

.section-heading p,
.home-community p {
  color: var(--muted);
  line-height: 1.55;
  max-width: 760px;
}

.home-feature-grid,
.home-action-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-feature,
.home-action-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 210px;
  padding: 20px;
}

.home-feature {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-feature i,
.home-action-card i {
  font-size: 28px;
}

.home-feature p,
.home-action-card span {
  color: var(--muted);
  line-height: 1.5;
}

.home-community {
  align-items: center;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
}

.home-metrics {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-metrics div {
  background: #173421;
  border: 1px solid #27583a;
  border-radius: 8px;
  color: #dcefe1;
  min-height: 124px;
  padding: 18px;
}

.home-metrics strong {
  color: #fff;
  display: block;
  font-size: 38px;
  line-height: 1;
  margin-bottom: 10px;
}

.home-metrics span {
  color: rgba(255, 255, 255, 0.88);
  display: block;
  font-weight: 850;
  line-height: 1.25;
}

.home-action-card {
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
}

.home-action-card:hover {
  border-color: var(--brand);
  box-shadow: var(--shadow);
}

.notice-page {
  background:
    linear-gradient(180deg, rgba(255, 211, 78, 0.18), rgba(54, 169, 225, 0.08) 340px, transparent),
    #fffdf4;
}

.notice-hero {
  background: #143c27;
  border: 2px solid #24583a;
  border-radius: 8px;
  box-shadow: var(--shadow);
  color: #fff;
  margin-bottom: 18px;
  overflow: hidden;
  padding: clamp(22px, 5vw, 42px);
  position: relative;
}

.notice-hero > * {
  max-width: 720px;
  position: relative;
  z-index: 1;
}

.notice-hero .eyebrow {
  color: #cef0d8;
}

.notice-hero h2 {
  font-size: clamp(36px, 6vw, 64px);
  line-height: 1;
  margin: 8px 0 12px;
}

.notice-hero p:not(.eyebrow) {
  color: #ecfff1;
  line-height: 1.55;
}

.notice-page-list {
  display: grid;
  gap: 14px;
}

.notice-public-card {
  background: #fff;
  border: 2px solid #d9ead0;
  border-bottom-width: 5px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
  overflow: hidden;
}

.notice-public-media {
  background: #f7fbf4;
  border-bottom: 1px solid #d9ead0;
}

.notice-public-media img {
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

.notice-public-icon {
  aspect-ratio: 3 / 1;
  display: block;
  min-height: 190px;
  width: 100%;
}

.notice-public-icon {
  align-items: center;
  background: #eaf8ff;
  color: var(--kid-sky);
  display: flex;
  font-size: 42px;
  justify-content: center;
}

.notice-public-body,
.notice-public-card > div:last-child {
  padding: 18px;
}

.notice-public-card h3 {
  font-size: 24px;
  margin: 10px 0 8px;
}

.notice-public-card p,
.notice-rich-body {
  color: var(--muted);
  line-height: 1.55;
}

.notice-rich-body p,
.notice-rich-body div {
  margin: 0 0 10px;
}

.notice-rich-body ul,
.notice-rich-body ol {
  margin: 8px 0 12px;
  padding-left: 24px;
}

.notice-rich-body li {
  margin: 4px 0;
}

.menu-band {
  background: #fffdf6;
  border: 1px solid #eadfba;
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(98, 77, 26, 0.12);
  overflow: hidden;
}

.menu-head {
  align-items: center;
  background: #143c27;
  color: #fff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 18px;
}

.menu-head-copy {
  color: #dbeede;
  margin: 6px 0 0;
}

.menu-head-main {
  min-width: 0;
}

.menu-head-tools {
  align-items: flex-end;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  min-width: 230px;
}

.menu-head-tools .chips {
  justify-content: flex-end;
}

.menu-date-tools {
  background: linear-gradient(135deg, #fffdf6 0%, #f3fff3 100%);
  border-bottom: 1px solid #eadfba;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 14px;
  width: 100%;
}

.menu-date-card {
  aspect-ratio: 1983 / 793;
  background: #fffdf6;
  border: 1px solid #cbe9ba;
  border-radius: 8px;
  color: #143c27;
  display: block;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
  text-align: center;
  width: 100%;
}

.menu-date-card:hover,
.menu-date-card:focus-visible {
  border-color: #168f5c;
  box-shadow: 0 14px 28px rgba(20, 60, 39, 0.15);
  transform: translateY(-2px);
}

.menu-date-card.active {
  border-color: #168f5c;
  box-shadow: 0 0 0 3px rgba(22, 143, 92, 0.18), 0 15px 30px rgba(20, 60, 39, 0.15);
}

.menu-date-card.active::after {
  border: 3px solid rgba(255, 211, 78, 0.95);
  border-radius: 8px;
  content: '';
  inset: 5px;
  pointer-events: none;
  position: absolute;
}

.menu-date-card-image {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.menu-date-card-date {
  background: rgba(20, 60, 39, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 8px;
  bottom: 9px;
  box-shadow: 0 10px 20px rgba(20, 60, 39, 0.18);
  color: #fffdf6;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  max-width: calc(100% - 18px);
  overflow-wrap: anywhere;
  padding: 7px 9px;
  position: absolute;
  right: 9px;
  text-transform: capitalize;
  z-index: 1;
}

.menu-date-card small,
.menu-date-loading {
  color: #168f5c;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.menu-date-card strong {
  color: #143c27;
  display: block;
  font-size: 18px;
  line-height: 1.16;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.menu-date-loading {
  align-items: center;
  background: rgba(255, 253, 246, 0.9);
  border: 1px solid #e6d59e;
  border-radius: 8px;
  display: inline-flex;
  gap: 7px;
  grid-column: 1 / -1;
  justify-content: center;
  min-height: 38px;
}

.selected-menu-date {
  align-items: center;
  background:
    radial-gradient(circle at right top, rgba(255, 211, 78, 0.34), transparent 34%),
    linear-gradient(135deg, #143c27 0%, #168f5c 100%);
  border-bottom: 1px solid rgba(234, 223, 186, 0.9);
  color: #fff;
  display: grid;
  gap: 14px;
  grid-template-columns: 58px minmax(0, 1fr);
  padding: 16px 18px;
}

.selected-menu-date-icon {
  align-items: center;
  background: rgba(255, 253, 246, 0.14);
  border: 1px solid rgba(255, 253, 246, 0.38);
  border-radius: 8px;
  color: #ffeaa8;
  display: inline-flex;
  font-size: 24px;
  height: 58px;
  justify-content: center;
  width: 58px;
}

.selected-menu-date-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.selected-menu-date-copy small {
  color: #ffeaa8;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.selected-menu-date-copy strong {
  color: #fff;
  display: block;
  font-size: clamp(24px, 4vw, 36px);
  line-height: 1.02;
  overflow-wrap: break-word;
}

.selected-menu-date-copy span {
  color: #e7f7e8;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
}

.menu-calendar-backdrop {
  align-items: center;
  background: rgba(8, 26, 16, 0.62);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 18px;
  position: fixed;
  z-index: 160;
}

.menu-calendar-modal {
  background: #fffdf6;
  border: 1px solid #f0d796;
  border-radius: 8px;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
  max-height: calc(100vh - 36px);
  overflow: auto;
  width: min(520px, 100%);
}

.menu-calendar-hero {
  background:
    radial-gradient(circle at top right, rgba(255, 211, 78, 0.35), transparent 34%),
    linear-gradient(135deg, #0f3a26 0%, #168f5c 100%);
  color: #fff;
  padding: 20px;
  position: relative;
}

.menu-calendar-hero .eyebrow {
  color: #ffeaa8;
}

.menu-calendar-hero h3 {
  color: #fff;
  font-size: 28px;
  line-height: 1.02;
  margin: 7px 42px 6px 0;
}

.menu-calendar-hero p {
  color: #e9f8ec;
  margin: 0;
}

.menu-calendar-close,
.menu-calendar-monthbar button,
.menu-calendar-actions button {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  font-weight: 900;
  justify-content: center;
}

.menu-calendar-close {
  background: rgba(255, 253, 246, 0.16);
  border: 1px solid rgba(255, 253, 246, 0.4);
  color: #fff;
  height: 38px;
  position: absolute;
  right: 14px;
  top: 14px;
  width: 38px;
}

.menu-calendar-monthbar {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  padding: 14px 16px 4px;
}

.menu-calendar-monthbar strong {
  color: #143c27;
  font-size: 18px;
  line-height: 1.1;
  text-align: center;
  text-transform: capitalize;
}

.menu-calendar-monthbar button {
  background: #f7fbef;
  border: 1px solid #cfe3cd;
  color: #143c27;
  height: 42px;
}

.menu-calendar-grid {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  padding: 14px 16px;
}

.menu-calendar-weekday {
  color: #5c6f5f;
  font-size: 11px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
}

.menu-calendar-day {
  align-items: center;
  background: #fff;
  border: 1px solid #d8e4d5;
  border-radius: 8px;
  color: #143c27;
  display: inline-flex;
  font-size: 15px;
  font-weight: 900;
  justify-content: center;
  min-height: 48px;
}

.menu-calendar-day:hover,
.menu-calendar-day:focus-visible {
  border-color: #ffd34e;
  box-shadow: 0 8px 18px rgba(20, 60, 39, 0.12);
}

.menu-calendar-day.muted {
  background: #f6f7f0;
  color: #839184;
}

.menu-calendar-day.today {
  border-color: #36a9e1;
  box-shadow: inset 0 0 0 1px rgba(54, 169, 225, 0.34);
}

.menu-calendar-day.selected {
  background: #143c27;
  border-color: #143c27;
  color: #fff;
}

.menu-calendar-footer {
  border-top: 1px solid #eadfba;
  display: grid;
  gap: 12px;
  padding: 14px 16px 16px;
}

.menu-calendar-footer > span {
  color: #5c6f5f;
  font-size: 13px;
}

.menu-calendar-footer strong {
  color: #143c27;
  text-transform: capitalize;
}

.menu-calendar-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.menu-calendar-actions button {
  background: #eaf8e7;
  border: 1px solid #c7e8c9;
  color: #143c27;
  gap: 8px;
  min-height: 42px;
}

.menu-section {
  padding: 16px;
}

.menu-category {
  border-top: 1px dashed #d7c98d;
  padding-top: 16px;
}

	.menu-category:first-child {
	  border-top: 0;
	  padding-top: 0;
	}

	.catalog-search-panel {
	  background: linear-gradient(135deg, #f7fff2, #fffdf6);
	  border: 1px solid #cde9c3;
	  border-radius: 8px;
	  display: grid;
	  gap: 10px;
	  margin-bottom: 16px;
	  padding: 12px;
	}

	.catalog-search-panel label {
	  align-items: center;
	  color: #143c27;
	  display: inline-flex;
	  font-size: 13px;
	  gap: 8px;
	}

	.catalog-search-panel label i {
	  color: var(--brand);
	}

	.catalog-search-input-row {
	  align-items: stretch;
	  display: grid;
	  gap: 8px;
	  grid-template-columns: minmax(0, 1fr) auto;
	}

	.catalog-search-input-row input {
	  border-color: #bcdcb8;
	  font-size: 15px;
	  min-height: 44px;
	}

	.catalog-search-results {
	  display: grid;
	  gap: 8px;
	}

	.catalog-search-hint {
	  margin: 0;
	}

	.catalog-search-grid {
	  display: grid;
	  gap: 8px;
	  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	}

	.catalog-result-card {
	  align-items: stretch;
	  background: #fff;
	  border: 1px solid #d7ead0;
	  border-radius: 8px;
	  display: grid;
	  gap: 8px;
	  grid-template-columns: minmax(0, 1fr);
	  padding: 8px;
	}

	.catalog-result-card.is-unavailable {
	  background: #fff9e9;
	  border-color: #ecd08a;
	}

	.catalog-result-main {
	  align-items: center;
	  background: transparent;
	  border: 0;
	  color: var(--text);
	  display: grid;
	  gap: 9px;
	  grid-template-columns: 54px minmax(0, 1fr);
	  min-width: 0;
	  padding: 0;
	  text-align: left;
	  width: 100%;
	}

	.catalog-result-main img,
	.catalog-result-placeholder {
	  aspect-ratio: 1 / 1;
	  background: #fffdf5;
	  border: 1px solid #dfead8;
	  border-radius: 8px;
	  box-sizing: border-box;
	  display: flex;
	  height: 54px;
	  object-fit: contain;
	  object-position: center;
	  padding: 4px;
	  width: 54px;
	}

	.catalog-result-placeholder {
	  align-items: center;
	  background: #eef8ef;
	  color: var(--brand);
	  justify-content: center;
	}

	.catalog-result-main span {
	  display: grid;
	  gap: 3px;
	  min-width: 0;
	}

	.catalog-result-main strong,
	.catalog-result-main small,
	.catalog-result-main em {
	  overflow-wrap: break-word;
	  word-break: normal;
	}

	.catalog-result-main strong {
	  font-size: 13px;
	  line-height: 1.18;
	}

	.catalog-result-main small {
	  color: var(--muted);
	  font-size: 11px;
	  font-weight: 800;
	}

	.catalog-result-main em {
	  color: #2f744a;
	  font-size: 11px;
	  font-style: normal;
	  font-weight: 850;
	  line-height: 1.25;
	}

	.catalog-result-card.is-unavailable .catalog-result-main em {
	  color: #8a6400;
	}

	.catalog-result-action {
	  min-width: 0;
	  white-space: nowrap;
	  width: 100%;
	}

	.menu-items {
	  display: grid;
	  gap: 10px;
	  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.pedido-grid {
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1.22fr);
}

.order-first {
  border-right: 1px solid var(--line);
}

.order-form {
  margin-top: 12px;
}

.order-status {
  margin-top: 10px;
}

.menu-item {
  background: #fff;
  border: 1px solid #d8e8d2;
  border-top: 5px solid var(--kid-yellow);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 144px;
  padding: 12px;
}

.menu-item:nth-child(2n) {
  border-top-color: var(--kid-sky);
}

.menu-item:nth-child(3n) {
  border-top-color: var(--kid-coral);
}

.menu-item:nth-child(4n) {
  border-top-color: var(--kid-lime);
}

.menu-item:hover {
  box-shadow: 0 12px 26px rgba(22, 143, 92, 0.12);
}

.product-photo-trigger {
  background: #fffdf5;
  border: 0;
  border-radius: 8px;
  display: block;
  padding: 0;
  text-align: left;
  width: 100%;
}

.product-photo-trigger:focus-visible {
  box-shadow: 0 0 0 3px rgba(22, 143, 92, 0.2);
  outline: none;
}

.menu-photo {
  aspect-ratio: 4 / 3;
  background: #fffdf5;
  border: 1px solid #e4eddc;
  border-radius: 8px;
  box-sizing: border-box;
  display: block;
  object-fit: contain;
  object-position: center;
  padding: 7px;
  width: 100%;
}

.product-photo-trigger:hover .menu-photo,
.product-photo-trigger:hover .photo-placeholder {
  transform: translateY(-1px);
}

.menu-item .price {
  color: var(--brand);
  font-size: 22px;
  font-weight: 900;
  margin-top: auto;
}

.product-modal-backdrop {
  align-items: center;
  background: rgba(10, 22, 16, 0.68);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 18px;
  position: fixed;
  z-index: 80;
}

.product-modal {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.26);
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(320px, 1.05fr);
  max-height: calc(100vh - 36px);
  max-width: 920px;
  overflow: auto;
  position: relative;
  width: min(100%, 920px);
}

.product-modal-close {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 2;
}

.product-modal-media {
  background: #fffdf5;
  min-height: 100%;
}

.product-modal-media img,
.product-modal-placeholder {
  box-sizing: border-box;
  height: 100%;
  min-height: 390px;
  object-fit: contain;
  object-position: center;
  padding: 10px;
  width: 100%;
}

.product-modal-placeholder {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 54px;
  justify-content: center;
}

.product-modal-body {
  padding: 32px;
}

.product-modal-body h2 {
  font-size: 32px;
}

.product-modal-body h3 {
  margin-top: 18px;
}

	.product-modal-chips {
	  margin: 14px 0;
	}

	.product-sale-popover {
	  background: #eefbf1;
	  border: 1px solid #bee5c5;
	  border-radius: 8px;
	  display: grid;
	  gap: 8px;
	  margin: 14px 0;
	  padding: 12px;
	}

	.product-sale-popover.is-unavailable {
	  background: #fff8e4;
	  border-color: #e8cc7b;
	}

	.product-sale-popover strong {
	  align-items: center;
	  color: #143c27;
	  display: inline-flex;
	  font-size: 14px;
	  gap: 8px;
	  line-height: 1.2;
	}

	.product-sale-popover.is-unavailable strong {
	  color: #805900;
	}

	.product-sale-popover p {
	  color: #3f6549;
	  font-size: 13px;
	  line-height: 1.4;
	  margin: 0;
	}

	.product-sale-popover.is-unavailable p {
	  color: #6d560f;
	}

	.product-sale-days {
	  display: flex;
	  flex-wrap: wrap;
	  gap: 6px;
	}

	.ingredient-list-public {
	  border: 1px solid var(--line);
	  border-radius: 8px;
	  overflow: hidden;
}

.ingredient-line-public {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}

.ingredient-line-public:last-child {
  border-bottom: 0;
}

.product-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.home-menu-modal-open {
  overflow: hidden;
}

.home-menu-modal-backdrop {
  align-items: center;
  background: rgba(8, 24, 15, 0.72);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 18px;
  position: fixed;
  z-index: 90;
}

.home-menu-order-modal {
  background: #fffdf6;
  border: 1px solid #cfe3c9;
  border-radius: 8px;
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.32);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  max-height: calc(100vh - 36px);
  max-width: 1180px;
  overflow: hidden;
  width: min(100%, 1180px);
}

.home-menu-modal-head {
  align-items: flex-start;
  background: linear-gradient(135deg, #113f28, #168f5c);
  color: #fff;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 18px;
}

.home-menu-modal-head h2 {
  font-size: 28px;
  line-height: 1.04;
  margin: 2px 0 6px;
}

.home-menu-modal-head p:not(.eyebrow) {
  color: #e5f4e9;
  font-weight: 700;
  margin: 0;
}

.home-menu-modal-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
}

.home-menu-modal-actions .ghost-btn {
  background: rgba(255, 255, 255, 0.92);
}

.home-menu-modal-meta {
  align-items: center;
  background: #f4fbef;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 18px;
}

.home-menu-modal-body {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  min-height: 0;
  overflow: auto;
  padding: 16px;
}

.home-menu-products-panel {
  min-width: 0;
}

.home-menu-category + .home-menu-category {
  border-top: 1px dashed #dbc783;
  margin-top: 16px;
  padding-top: 16px;
}

.home-menu-category h3 {
  font-size: 16px;
  margin: 0 0 10px;
}

.home-menu-product-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}

.home-menu-product-card {
  background: #fff;
  border: 1px solid #d8e8d2;
  border-top: 5px solid var(--kid-yellow);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
  padding: 10px;
}

.home-menu-product-card:nth-child(2n) {
  border-top-color: var(--kid-sky);
}

.home-menu-product-card:nth-child(3n) {
  border-top-color: var(--kid-coral);
}

.home-menu-product-card:nth-child(4n) {
  border-top-color: var(--kid-lime);
}

.home-menu-product-card:hover {
  box-shadow: 0 12px 26px rgba(22, 143, 92, 0.12);
}

.home-menu-product-copy {
  display: grid;
  gap: 7px;
}

.home-menu-product-copy > strong {
  color: var(--text);
  font-size: 15px;
  line-height: 1.18;
}

.home-menu-product-copy .chips {
  gap: 5px;
}

.home-menu-product-copy p {
  display: -webkit-box;
  line-height: 1.32;
  margin: 0;
  min-height: 32px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.home-menu-product-footer {
  display: grid;
  gap: 10px;
  margin-top: auto;
}

.home-menu-product-footer .price {
  color: var(--brand);
  font-size: 22px;
  font-weight: 900;
}

.home-menu-product-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
}

.home-menu-product-actions button {
  min-width: 0;
}

.home-menu-photo-placeholder {
  align-items: center;
  background: #eef5ea;
  color: var(--muted);
  display: flex;
  font-size: 34px;
  justify-content: center;
}

.home-menu-cart-panel {
  align-self: start;
  position: sticky;
  top: 0;
}

.home-order-panel {
  background: #fff;
  box-shadow: 0 12px 26px rgba(22, 143, 92, 0.08);
  padding: 14px;
}

.home-order-panel h3 {
  margin: 0 0 6px;
}

.home-menu-cart {
  margin-top: 12px;
}

.home-menu-cart-empty {
  min-height: 120px;
}

.home-menu-cart-line {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) 32px 28px 32px minmax(74px, auto);
  padding: 9px 0;
}

.home-menu-cart-line strong {
  font-size: 13px;
  line-height: 1.18;
  min-width: 0;
  overflow-wrap: anywhere;
}

.home-menu-cart-line span {
  font-weight: 900;
  text-align: center;
}

.home-menu-cart-line b {
  color: var(--brand);
  text-align: right;
}

.home-menu-cart-line .icon-btn {
  border-radius: 8px;
  height: 32px;
  min-height: 32px;
  width: 32px;
}

.home-menu-modal-loading {
  align-items: center;
  display: grid;
  gap: 10px;
  justify-items: center;
  min-height: 320px;
  padding: 28px;
  text-align: center;
}

.home-menu-modal-loading i {
  color: var(--brand);
  font-size: 30px;
}

.home-menu-modal-error i {
  color: var(--danger);
}

.home-menu-detail-backdrop {
  z-index: 100;
}

.empty-state.compact {
  min-height: 110px;
}

.report-page {
  background:
    linear-gradient(180deg, rgba(255, 211, 78, 0.16), rgba(54, 169, 225, 0.08) 460px, transparent),
    #fffdf4;
}

.report-shell {
  display: grid;
  gap: 22px;
  margin: 0 auto;
  max-width: 1240px;
  padding: 22px;
}

.report-loading {
  align-items: center;
  background: #fff;
  border: 2px solid #d9ead0;
  border-bottom-width: 5px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  margin: 42px auto;
  min-height: 220px;
  padding: 28px;
  text-align: center;
  width: min(100%, 520px);
}

.report-loading i {
  color: var(--brand);
  font-size: 34px;
}

.report-loading--error {
  border-color: #ffc4ba;
}

.report-hero-panel {
  align-items: center;
  background:
    linear-gradient(135deg, rgba(20, 60, 39, 0.96), rgba(18, 92, 102, 0.9)),
    url("/escolar/henry-ford/assets/henry-ford-camila-escolar-hero.jpg") center / cover no-repeat;
  border: 1px solid #24583a;
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(30, 63, 42, 0.2);
  color: #fff;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 0.32fr);
  min-height: 310px;
  overflow: hidden;
  padding: clamp(22px, 5vw, 44px);
}

.report-hero-copy {
  max-width: 720px;
  min-width: 0;
}

.report-hero-copy .eyebrow {
  color: #cff4da;
}

.report-hero-copy h2 {
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1;
  margin: 8px 0 14px;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.report-hero-copy p:not(.eyebrow) {
  color: #f1fff3;
  font-size: 17px;
  line-height: 1.5;
  margin-bottom: 20px;
  max-width: 620px;
  overflow-wrap: anywhere;
}

.report-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.report-hero-card {
  align-self: stretch;
  background: rgba(255, 255, 255, 0.92);
  border: 2px solid rgba(255, 211, 78, 0.9);
  border-radius: 8px;
  color: #173421;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 180px;
  padding: 22px;
}

.report-hero-card strong {
  color: var(--brand);
  font-size: 58px;
  line-height: 0.95;
}

.report-hero-card span {
  font-size: 16px;
  font-weight: 900;
}

.report-hero-card small {
  color: var(--muted);
  font-weight: 850;
  margin-top: 10px;
}

.report-layout {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) 300px;
}

.static-report-panel {
  background: #fff;
  border: 2px solid #d9ead0;
  border-bottom-width: 5px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 16px;
  overflow: hidden;
  padding: 18px;
}

.static-report-toolbar {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.static-report-toolbar h3 {
  font-size: 24px;
  margin: 4px 0 5px;
}

.static-report-toolbar p:not(.eyebrow) {
  color: var(--muted);
  font-weight: 750;
  margin: 0;
}

.static-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.static-report-preview {
  align-items: start;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 211, 78, 0.24), transparent 24%),
    linear-gradient(135deg, #edf8e7, #fffdf4);
  border: 1px dashed #c9dfbd;
  border-radius: 8px;
  display: grid;
  justify-items: center;
  min-height: 360px;
  overflow: auto;
  padding: 16px;
  position: relative;
}

.static-report-preview canvas {
  background: #fff9df;
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(20, 60, 39, 0.18);
  display: block;
  height: auto;
  max-width: min(100%, 540px);
  width: 100%;
}

.static-report-status {
  align-items: center;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid #d8e8d2;
  border-radius: 999px;
  bottom: 24px;
  box-shadow: 0 12px 28px rgba(20, 60, 39, 0.12);
  color: #143c27;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 8px;
  left: 50%;
  padding: 10px 14px;
  position: absolute;
  transform: translateX(-50%);
}

.static-report-status.is-error {
  border-color: #ffc4ba;
  color: #8a2d20;
}

.report-days,
.report-side {
  display: grid;
  gap: 18px;
}

.report-day {
  background: #fff;
  border: 2px solid #d9ead0;
  border-bottom-width: 5px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.report-day-head {
  align-items: center;
  background: #143c27;
  color: #fff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 18px;
}

.report-day-head .eyebrow {
  color: #bfe5cd;
}

.report-day-head h3 {
  font-size: 26px;
  line-height: 1.05;
  margin-bottom: 5px;
}

.report-day-head span {
  color: #dbeede;
  display: block;
  font-weight: 800;
}

.report-day-message {
  background: #fff9db;
  border-bottom: 1px solid #eadfba;
  color: #536353;
  font-weight: 750;
  line-height: 1.45;
  margin: 0;
  padding: 13px 18px;
}

.report-category {
  padding: 18px;
}

.report-category + .report-category {
  border-top: 1px dashed #d7c98d;
}

.report-category-head {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
}

.report-category-head span {
  align-items: center;
  background: #eaf8ef;
  border: 1px solid #c1e4cc;
  border-radius: 8px;
  color: var(--brand);
  display: inline-flex;
  font-size: 24px;
  height: 52px;
  justify-content: center;
  width: 52px;
}

.report-category--orange .report-category-head span {
  background: #fff0df;
  border-color: #ffd0a4;
  color: #e27a19;
}

.report-category--blue .report-category-head span {
  background: #eaf8ff;
  border-color: #b8dff3;
  color: var(--kid-sky);
}

.report-category--purple .report-category-head span {
  background: #f0eaff;
  border-color: #d8c8ff;
  color: #7952d8;
}

.report-category--yellow .report-category-head span {
  background: #fff5c7;
  border-color: #f3d34f;
  color: #b87900;
}

.report-category-head h4 {
  font-size: 20px;
  margin: 0;
}

.report-category-head p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin: 3px 0 0;
}

.report-product-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.report-product {
  background: #fff;
  border: 1px solid #d8e8d2;
  border-radius: 8px;
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 310px;
  overflow: hidden;
}

.report-product-photo {
  background: #fffdf5;
  border-bottom: 1px solid #d8e8d2;
  min-height: 168px;
}

.report-product-photo img,
.report-photo-placeholder {
  aspect-ratio: 4 / 3;
  display: block;
  height: 100%;
  min-height: 168px;
  object-fit: contain;
  object-position: center;
  padding: 8px;
  width: 100%;
}

.report-photo-placeholder {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 34px;
  justify-content: center;
}

.report-product-body {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 12px;
}

.report-product-title {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.report-product-title strong {
  line-height: 1.2;
}

.report-product-title span {
  color: var(--brand);
  flex: 0 0 auto;
  font-size: 18px;
  font-weight: 900;
}

.report-product-body p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  margin: 0;
}

.report-product-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}

.report-product-tags span {
  background: #f4fbf0;
  border: 1px solid #d8e8d2;
  border-radius: 999px;
  color: #23633e;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  padding: 6px 8px;
}

.report-side {
  position: sticky;
  top: 92px;
}

.report-side-card,
.report-side-link {
  background: #fff;
  border: 2px solid #d9ead0;
  border-bottom-width: 5px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  color: var(--text);
  display: grid;
  gap: 8px;
  padding: 16px;
  text-decoration: none;
}

.report-side-card i,
.report-side-link i {
  color: var(--brand);
  font-size: 24px;
}

.report-side-card strong,
.report-side-link span {
  font-size: 16px;
  font-weight: 900;
}

.report-side-card span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.report-side-card--sun {
  border-color: #f3d34f;
}

.report-side-card--sun i {
  color: #d58a00;
}

.report-side-card--sky {
  border-color: #b8dff3;
}

.report-side-card--sky i {
  color: var(--kid-sky);
}

.report-empty {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 180px;
  padding: 30px;
  text-align: center;
}

.report-empty i {
  color: var(--kid-coral);
  font-size: 34px;
}

.profile-cover {
  background: #163021;
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 14px;
  grid-template-columns: 86px minmax(0, 1fr);
  padding: 16px;
}

.avatar {
  align-items: center;
  background: #dff5e6;
  border: 3px solid #fff;
  border-radius: 8px;
  color: var(--brand);
  display: flex;
  font-size: 34px;
  font-weight: 900;
  height: 86px;
  justify-content: center;
  overflow: hidden;
  width: 86px;
}

.avatar img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.profile-qr-img {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: block;
  height: 160px;
  margin: 0 auto 12px;
  object-fit: contain;
  padding: 8px;
  width: 160px;
}

.activity-row {
  border-bottom: 1px solid var(--line);
  padding: 9px 0;
}

.chat-message-row {
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: 42px minmax(0, 1fr);
  padding: 10px 0;
}

.chat-message-avatar {
  align-items: center;
  background: #dff5e6;
  border-radius: 8px;
  color: var(--brand);
  display: inline-flex;
  font-weight: 900;
  height: 42px;
  justify-content: center;
  overflow: hidden;
  width: 42px;
}

.chat-message-avatar img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.chat-message-body {
  min-width: 0;
}

.portal-chat-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  margin-top: 10px;
}

.portal-chat-option {
  background: #f8fbf6;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 5px;
  min-height: 86px;
  padding: 10px;
  text-align: left;
}

.portal-chat-option.active,
.portal-chat-option:hover {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(20, 143, 83, 0.12);
}

.portal-chat-option span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.portal-chat-thread {
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 12px;
}

.portal-chat-thread-head {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}

.portal-chat-messages {
  max-height: 360px;
  overflow: auto;
  padding-right: 4px;
}

.chat-config-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
}

.hf-camila-switch {
  align-items: center;
  background: #f3f5f2;
  border: 1px solid #c6d2c9;
  border-radius: 999px;
  color: #30463a;
  cursor: pointer;
  display: inline-flex;
  font-size: 13px;
  font-weight: 800;
  gap: 8px;
  min-height: 34px;
  padding: 4px 11px 4px 5px;
}

.hf-camila-switch.is-on {
  background: #e4f6ea;
  border-color: #52b674;
  color: #176a42;
}

.hf-camila-switch:disabled { cursor: wait; opacity: .6; }
.hf-camila-switch-track {
  background: #a9b7ad;
  border-radius: 999px;
  display: inline-flex;
  height: 22px;
  padding: 2px;
  width: 40px;
}
.hf-camila-switch.is-on .hf-camila-switch-track { background: #168f5c; }
.hf-camila-switch-thumb {
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px #0003;
  height: 18px;
  transition: transform .15s ease;
  width: 18px;
}
.hf-camila-switch.is-on .hf-camila-switch-thumb { transform: translateX(18px); }

.hf-whatsapp-messages {
  max-height: 420px;
  min-height: 130px;
  overflow: auto;
  padding-right: 6px;
}

.hf-whatsapp-reply,
.hf-whatsapp-access {
  background: #f7fbf7;
  border: 1px solid #cfe4d4;
  border-radius: 14px;
  margin-top: 14px;
  padding: 16px;
}

.hf-whatsapp-reply > label,
.hf-whatsapp-reply > strong,
.hf-whatsapp-access > strong {
  color: #173b2a;
  display: block;
  font-weight: 800;
  margin-bottom: 9px;
}

.hf-whatsapp-reply textarea {
  box-sizing: border-box;
  min-height: 84px;
  resize: vertical;
  width: 100%;
}

.hf-whatsapp-reply-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.hf-whatsapp-reply-actions span,
.hf-whatsapp-closed p {
  color: var(--muted);
  font-size: 12px;
}

.hf-whatsapp-template {
  background: #fff;
  border-left: 3px solid var(--brand);
  border-radius: 7px;
  line-height: 1.5;
  margin: 12px 0;
  padding: 11px 13px;
}

.hf-whatsapp-access {
  display: grid;
  gap: 9px;
}

.hf-whatsapp-access .field {
  margin: 0;
}

.hf-whatsapp-access input {
  width: 100%;
}

.chat-settings {
  background: #f7fbf5;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  margin: 12px 0;
  padding: 10px;
}

.chat-settings .full {
  grid-column: 1 / -1;
  margin: 0;
}

.chat-audio {
  align-items: center;
  background: #f3f8f1;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(180px, 1fr) auto;
  margin-top: 7px;
  padding: 8px;
}

.chat-audio audio {
  width: 100%;
}

.empty-state {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  min-height: 160px;
  text-align: center;
}

.empty-state i {
  font-size: 28px;
}

.pos-burst-products article.pos-product-tile--burst {
  border: 2px solid #75ae80 !important;
  box-shadow: 0 3px 9px rgba(20, 86, 52, 0.14) !important;
}

@media (max-width: 1100px) {
  .portal-grid,
  .community-result-grid,
  .portal-talent-admin {
    grid-template-columns: 1fr;
  }

  .kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .menu-day-board {
    grid-template-columns: 1fr;
  }

  .menu-day-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .two-col,
  .pedido-grid,
  .home-menu-modal-body,
  .product-modal,
  .credit-line-toolbar,
  .three-col {
    grid-template-columns: 1fr;
  }

  .four,
  .credit-line-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-feature-grid,
  .home-action-grid,
  .home-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-dashboard-row,
  .home-community,
  .report-hero-panel,
  .report-layout {
    grid-template-columns: 1fr;
  }

  .report-side {
    position: static;
  }

  .birthday-slide {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .order-first {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .home-menu-cart-panel {
    position: static;
  }

  .pos-cart-panel {
    position: static;
  }

  .pos-recess-brief {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid,
  .form-grid.three,
  .form-grid.two,
  .menu-tools,
  .supplier-price-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .supplier-price-grid .ingredient-cell,
  .supplier-price-grid .notes-cell {
    grid-column: 1 / -1;
  }

  .product-availability-card {
    grid-template-columns: 1fr;
  }

  .product-modal-media img,
  .product-modal-placeholder {
    min-height: 280px;
  }

  .admin-product-modal-body {
    grid-template-columns: 1fr;
  }

  .admin-product-modal-media {
    position: static;
  }

  .recipe-line-card {
    grid-template-columns: minmax(0, 1fr) repeat(2, minmax(90px, 120px)) 90px auto 42px;
  }

  .pos-burst-body {
    display: block;
    overflow: hidden;
    position: relative;
  }

  .pos-burst-products {
    box-sizing: border-box;
    height: 100%;
    overflow-y: auto;
    padding-bottom: 300px;
    scroll-padding-bottom: 300px;
    scrollbar-gutter: stable;
  }

  .pos-burst-products .pos-product-grid {
    flex: none;
    overflow: visible;
  }

  .pos-burst-cart {
    bottom: 12px;
    left: 12px;
    max-height: min(300px, 48vh);
    overflow: auto;
    position: absolute;
    right: 12px;
    z-index: 3;
  }

  .pos-burst-cart-lines {
    flex: 0 1 auto;
    max-height: 78px;
    min-height: 0;
  }

  .pos-burst-total {
    margin: 8px 0;
    padding: 10px 12px;
  }

  .pos-burst-total strong {
    font-size: 30px;
  }

  .pos-burst-pay {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .pos-budget-head {
    grid-template-columns: minmax(110px, 150px) minmax(0, 1fr);
  }

  .pos-budget-tabs {
    grid-column: 1 / -1;
  }

  .pos-budget-helper--burst .pos-budget-results {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  body.school-public {
    max-width: 100vw;
    width: 100%;
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
    max-width: 100vw;
    overflow: hidden;
    padding-left: 16px;
    padding-right: 16px;
    width: 100%;
  }

  .public-topbar {
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 100vw;
    overflow: visible;
    padding: 12px 16px;
    width: 100%;
  }

  .brand-block {
    max-width: 100%;
  }

  .public-topbar .brand-block {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .pos-command-bar,
  .pos-panel-title,
  .pos-burst-head,
  .pos-burst-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .pos-command-bar > *,
  .pos-scope-tabs,
  .pos-burst-head-actions,
  .pos-wave-tabs {
    width: 100%;
  }

  .pos-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .pos-product-tile {
    padding: 6px;
  }

  .pos-product-tile strong {
    font-size: 11px;
    margin-bottom: 4px;
    min-height: 30px;
  }

  .pos-product-price,
  .pos-product-tile span {
    font-size: 14px;
  }

  .pos-burst-backdrop {
    padding: 0;
  }

  .pos-burst-modal {
    border-radius: 0;
  }

  .pos-burst-head {
    gap: 10px;
    padding: 12px;
  }

  .pos-burst-body {
    gap: 10px;
    padding: 10px;
  }

  .pos-burst-products {
    padding-bottom: 285px;
    scroll-padding-bottom: 285px;
  }

  .pos-burst-cart {
    bottom: 10px;
    left: 10px;
    max-height: min(285px, 46vh);
    right: 10px;
  }

  .pos-burst-products .pos-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .pos-product-tile--burst {
    min-height: 128px;
  }

  .pos-product-tile--burst .pos-product-price {
    font-size: 14px;
  }

  .pos-burst-pay {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .pos-cash-buttons {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .pos-cash-buttons button {
    font-size: 24px;
    min-height: 60px;
  }

  .pos-cash-buttons button:first-child {
    font-size: 17px;
  }

  .pos-budget-head {
    grid-template-columns: 1fr;
  }

  .pos-budget-amount input {
    font-size: 30px;
    min-height: 60px;
  }

  .pos-budget-tabs button {
    font-size: 12px;
    min-height: 48px;
  }

  .pos-budget-results,
  .pos-budget-helper--burst .pos-budget-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pos-budget-option {
    grid-template-columns: 40px minmax(0, 1fr);
    min-height: 82px;
  }

  .pos-budget-option img,
  .pos-budget-option-icon {
    width: 40px;
  }

  .pos-budget-option em {
    grid-column: 2;
    justify-self: start;
    margin-top: 2px;
    position: static;
  }

  .public-topbar .brand-copy {
    max-width: min(285px, calc(100vw - 86px));
  }

  .public-topbar .brand-mark {
    flex: 0 0 54px;
    height: 54px;
    width: 54px;
  }

  .public-topbar h1 {
    font-size: 17px;
    line-height: 1.04;
    overflow-wrap: break-word;
  }

  .public-topbar .eyebrow {
    font-size: 11px;
    line-height: 1.2;
  }

  .community-carousel-track {
    display: flex;
  }

  .community-mini {
    grid-template-columns: 1fr;
  }

  .community-mini img,
  .community-mini-icon {
    min-height: 220px;
  }

  .community-carousel-track--empty {
    display: grid;
    grid-template-columns: 1fr;
  }

  .community-carousel-track--empty .community-mini {
    grid-template-columns: 74px minmax(0, 1fr);
  }

  .community-card-actions,
  .community-profile-gallery {
    grid-template-columns: 1fr;
  }

  .community-modal-backdrop {
    align-items: flex-start;
    padding: 12px;
  }

  .community-profile-modal {
    max-height: calc(100vh - 24px);
    padding: 14px;
  }

  .community-profile-hero h2 {
    font-size: 28px;
    padding-right: 38px;
  }

  .brand-subtitle {
    font-size: 12px;
  }

  .public-menu-toggle {
    display: inline-flex !important;
    align-self: stretch;
    box-shadow: 0 8px 18px rgba(23, 52, 33, 0.18);
    flex: 1 1 100%;
    order: 2;
    position: static !important;
    width: 100%;
    z-index: 1;
  }

  .layout {
    grid-template-columns: 1fr;
  }

  .side-nav {
    flex-direction: row;
    height: auto;
    overflow-x: auto;
    overflow-y: hidden;
    position: static;
  }

  .nav-submenu { border: 0; display: flex; margin: 0; padding: 0; }

  .nav-item span {
    white-space: nowrap;
  }

  .workspace {
    padding: 12px;
  }

  .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .summary-range-controls,
  .summary-range-controls input,
  .supplier-card-actions,
  .purchase-group-card summary,
  .supplier-search-panel,
  .supplier-directory-layout,
  .supplier-meta.detail,
  .ingredient-library-main,
  .ingredient-library-metrics,
  .supplier-price-grid,
  .planning-board {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .summary-range-controls,
  .supplier-card-actions {
    display: grid;
    justify-content: stretch;
  }

  .summary-range-controls input,
  .summary-range-controls button,
  .supplier-card-actions a,
  .supplier-card-actions button {
    max-width: none;
    width: 100%;
  }

  .purchase-group-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-actions {
    display: none;
    flex-basis: 100%;
    gap: 8px;
    grid-template-columns: 1fr;
    margin-top: 6px;
    max-width: 100%;
    order: 3;
    width: 100%;
  }

  .menu-explainer-placeholder {
    aspect-ratio: 1916 / 821;
    min-height: 180px;
    padding: 16px;
  }

  .menu-explainer-banner img {
    aspect-ratio: 1916 / 821;
  }

  .menu-explainer-placeholder strong {
    font-size: 24px;
  }

  .public-menu-check:checked ~ .public-actions,
  body.public-nav-open .public-actions {
    display: grid;
  }

  .school-home-v2 .home-main-nav {
    display: none;
  }

  .menu-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .menu-head-main,
  .menu-head-tools,
  .menu-date-tools {
    flex-basis: auto;
    min-width: 0;
    width: 100%;
  }

  .menu-head-tools {
    align-items: stretch;
  }

  .menu-date-tools {
    grid-template-columns: 1fr;
    padding: 12px;
  }

	  .menu-date-card {
	    min-height: 0;
	  }

	  .selected-menu-date {
	    grid-template-columns: 1fr;
	    justify-items: center;
	    padding: 16px 14px;
	    text-align: center;
	  }

	  .selected-menu-date-copy strong {
	    font-size: 24px;
	  }

	  .catalog-search-input-row,
	  .catalog-result-card {
	    grid-template-columns: 1fr;
	  }

	  .catalog-result-action {
	    width: 100%;
	  }

	  .menu-calendar-backdrop {
	    padding: 12px;
	  }

  .menu-calendar-hero {
    padding: 18px;
  }

  .menu-calendar-hero h3 {
    font-size: 24px;
  }

  .menu-calendar-grid {
    gap: 5px;
    padding: 12px;
  }

  .menu-calendar-day {
    min-height: 42px;
  }

  .menu-calendar-actions {
    grid-template-columns: 1fr;
  }

  .transfer-actions {
    grid-template-columns: 1fr;
  }

  .menu-head .chips {
    justify-content: flex-start;
    max-width: 100%;
  }

  .menu-head .chip {
    line-height: 1.15;
    white-space: normal;
  }

  .nav-pill {
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    padding-left: 8px;
    padding-right: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
  }

  .home-hero {
    max-width: 100vw;
    width: 100%;
  }

  .home-hero-bg {
    display: none;
  }

  .home-hero-copy {
    max-width: calc(100vw - 44px);
    padding: 34px 22px;
    width: calc(100vw - 44px);
  }

  .home-hero h2 {
    font-size: clamp(34px, 10vw, 40px);
    line-height: 1.02;
    max-width: calc(100vw - 44px);
    overflow-wrap: break-word;
  }

  .home-hero p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.45;
    max-width: calc(100vw - 60px);
    overflow-wrap: break-word;
    width: calc(100vw - 60px);
  }

  .home-hero-badges,
  .home-actions {
    max-width: calc(100vw - 44px);
  }

  .home-actions a {
    width: 100%;
  }

  .home-strip,
  .home-feature-grid,
  .home-action-grid,
  .home-dashboard-row,
  .home-metrics {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-strip {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    max-width: 100vw;
    overflow: hidden;
    width: 100%;
  }

  .home-banner-zone {
    justify-items: center;
    max-width: 100vw;
    overflow: hidden;
    padding-left: 16px;
    padding-right: 16px;
    width: 100%;
  }

  .home-dashboard-row,
  .home-menu-preview,
  .menu-image-banner-card,
  .menu-card-header-link,
  .menu-image-link,
  .menu-image-strip {
    max-width: 100%;
    min-width: 0;
    width: 100%;
  }

  .home-strip a {
    aspect-ratio: auto;
    max-width: 100%;
    width: 100%;
  }

  .home-strip a img {
    height: auto;
    max-width: 100%;
  }

  .birthday-banner {
    align-items: start;
    grid-template-columns: 1fr;
    max-width: 100%;
    min-width: 0;
    width: 100%;
  }

  .mini-banner {
    max-width: 100%;
    min-width: 0;
    width: 100%;
  }

  .birthday-carousel {
    min-height: 0;
    min-width: 0;
  }

  .birthday-slide,
  .notice-admin-card,
  .notice-public-card {
    grid-template-columns: 1fr;
  }

  .birthday-slide-img {
    width: 100%;
  }

  .birthday-carousel--image-header .birthday-slide-img,
  .birthday-slide--image .birthday-slide-img,
  .mini-banner-image {
    aspect-ratio: 3 / 1;
  }

  .birthday-toolbar {
    justify-self: stretch;
    min-width: 0;
    width: 100%;
  }

  .birthday-range-btn {
    flex: 1;
    min-width: 0;
    padding-left: 8px;
    padding-right: 8px;
  }

  .menu-image-strip {
    aspect-ratio: 4 / 3;
    min-height: 0;
  }

  .menu-image-slide {
    transform: none;
  }

  .menu-image-slide.active {
    transform: none;
  }

  .menu-card-header-img,
  .menu-image-slide img {
    height: 100%;
    object-fit: contain;
    object-position: center;
  }

  .home-menu-modal-backdrop {
    align-items: stretch;
    padding: 10px;
  }

  .home-menu-order-modal {
    max-height: calc(100vh - 20px);
  }

  .home-menu-modal-head {
    flex-direction: column;
    padding: 14px;
  }

  .home-menu-modal-head h2 {
    font-size: 23px;
  }

  .home-menu-modal-actions,
  .home-menu-modal-actions a {
    width: 100%;
  }

  .home-menu-modal-body {
    padding: 12px;
  }

  .home-menu-product-grid {
    grid-template-columns: 1fr;
  }

  .home-menu-product-actions {
    grid-template-columns: 1fr;
  }

  .upcoming-products-track {
    grid-auto-columns: minmax(260px, 92%);
    grid-auto-flow: column;
    grid-template-columns: none;
  }

  .upcoming-product-image img {
    min-height: 210px;
  }

  .takeaway-banner-link img {
    min-height: 180px;
  }

  .community-card-header-img {
    min-height: 74px;
    object-fit: contain;
  }

  .community-carousel-track {
    display: flex;
    width: 100%;
  }

  .community-carousel-track--empty {
    display: grid;
    grid-template-columns: 1fr;
  }

  .community-mini--featured {
    padding: 12px;
  }

  .community-mini,
  .community-card,
  .community-card > *,
  .community-card h3,
  .community-card p,
  .community-card small,
  .community-card .chip,
  .community-mini strong,
  .community-mini small,
  .community-profile-hero,
  .community-profile-hero p,
  .community-profile-info {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .community-card .chip {
    line-height: 1.2;
    white-space: normal;
  }

  .community-profile-hero,
  .community-profile-grid {
    grid-template-columns: 1fr;
  }

	  .notice-public-card > div:last-child {
	    padding: 16px;
	  }

  .banner-icon {
    height: 62px;
    width: 62px;
  }

  .portal-kpis {
    gap: 10px;
  }

  .portal-kpis .kpi {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 0;
    padding: 12px;
  }

  .portal-kpis .kpi .label {
    line-height: 1.15;
  }

  .portal-kpis .kpi .value,
  .portal-kpis .kpi strong {
    font-size: 22px;
    margin-top: 0;
    text-align: right;
    white-space: nowrap;
  }

  .home-section {
    padding: 38px 18px;
  }

  .report-shell {
    gap: 16px;
    max-width: 100vw;
    padding: 14px;
    width: 100%;
  }

  .report-hero-panel {
    min-height: 0;
    max-width: 100%;
    min-width: 0;
    padding: 22px;
    width: 100%;
  }

  .report-hero-copy,
  .report-hero-copy > *,
  .static-report-panel,
  .static-report-toolbar,
  .static-report-toolbar > *,
  .report-layout,
  .report-days,
  .report-day {
    max-width: 100%;
    min-width: 0;
  }

  .report-hero-copy h2 {
    font-size: clamp(30px, 9vw, 34px);
    line-height: 1.04;
    overflow-wrap: anywhere;
  }

  .report-hero-copy p:not(.eyebrow) {
    font-size: 15px;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .report-hero-actions {
    min-width: 0;
    width: 100%;
  }

  .report-hero-actions a {
    min-width: 0;
    white-space: normal;
    width: 100%;
  }

  .static-report-toolbar h3,
  .static-report-toolbar p {
    overflow-wrap: anywhere;
  }

  .static-report-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .static-report-actions,
  .static-report-actions a,
  .static-report-actions button {
    width: 100%;
  }

  .static-report-preview {
    max-height: 74vh;
    padding: 10px;
  }

  .report-day-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .report-product-grid {
    grid-template-columns: 1fr;
  }

  .report-product {
    min-height: 0;
  }

	  .form-grid,
	  .form-grid.three,
	  .form-grid.two,
	  .four,
	  .credit-line-metrics,
	  .announcement-form-actions,
	  .menu-propagation-grid,
	  .menu-propagation-contact-form,
	  .menu-propagation-stats,
	  .menu-tools,
	  .command-console {
	    grid-template-columns: 1fr;
	  }

  .admin-submenu,
  .admin-submenu-btn,
  .menu-day-calendar,
  .menu-day-calendar .field,
  .menu-day-search,
  .menu-day-search input,
  .catalog-product-filter,
  .catalog-product-filter .ghost-btn,
  .catalog-product-search,
  .catalog-product-search input {
    width: 100%;
  }

  .catalog-product-filter {
    grid-template-columns: 1fr;
  }

  .menu-day-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .menu-propagation-head {
    align-items: stretch;
    flex-direction: column;
  }

  .menu-propagation-actions,
  .menu-propagation-actions button,
  .menu-propagation-share,
  .menu-propagation-share a,
  .menu-propagation-share button,
  .menu-propagation-recipient-actions,
  .menu-propagation-recipient-actions a,
  .menu-propagation-contact-actions {
    width: 100%;
  }

  .menu-propagation-recipient,
  .menu-propagation-contact {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .address-input-row {
    grid-template-columns: 1fr;
  }

  .address-input-row .secondary-btn {
    width: 100%;
  }

  .menu-day-selected-grid,
  .menu-day-library-grid {
    grid-template-columns: 1fr;
  }

	  .service-file-grid {
	    grid-template-columns: 1fr;
	  }

	  .product-availability-controls {
	    align-items: stretch;
  }

  .availability-pill {
    flex: 1 1 calc(50% - 6px);
    justify-content: center;
  }

  .availability-divider {
    display: none;
  }

  .field.two-wide {
    grid-column: 1 / -1;
  }

  .chat-settings,
  .chat-audio {
    grid-template-columns: 1fr;
  }

  .product-modal-backdrop {
    align-items: stretch;
    padding: 10px;
  }

  .admin-product-modal-backdrop,
  .admin-ingredient-modal-backdrop,
  .admin-supplier-modal-backdrop,
  .admin-supplier-edit-modal-backdrop,
  .admin-purchase-order-modal-backdrop,
  .admin-report-modal-backdrop {
    align-items: stretch;
    padding: 10px;
  }

  .admin-product-modal-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-product-modal-actions,
  .admin-product-modal-actions button,
  .admin-product-modal-actions a {
    width: 100%;
  }

  .admin-product-modal-body {
    max-height: none;
    padding: 12px;
  }

  .admin-menu-report-body {
    grid-template-columns: 1fr;
    max-height: none;
    padding: 10px;
  }

  .admin-menu-report-frame-shell {
    min-height: 68vh;
  }

  .admin-menu-report-frame {
    height: 68vh;
  }

  .recipe-line-card {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .recipe-line-cost {
    align-items: start;
    justify-items: start;
  }

  .product-modal-body {
    padding: 22px;
  }

  .product-modal-body h2 {
    font-size: 26px;
  }

  .ingredient-line-public,
  .product-modal-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Rafaga escritorio v3: tarjetas horizontales legibles y ayuda de monedas compacta. */
@media (min-width: 781px) {
  .pos-budget-helper--burst {
    align-items: end;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(720px, 1fr) minmax(320px, 0.42fr);
  }

  .pos-budget-helper--burst .pos-budget-head {
    grid-template-columns: 120px minmax(180px, 240px) minmax(420px, 1fr);
  }

  .pos-budget-helper--burst .pos-budget-results {
    margin-top: 0;
    min-width: 0;
  }

  .pos-budget-helper--burst .pos-budget-empty {
    grid-column: 1 / -1;
    min-height: 46px;
    width: 100%;
  }

  .pos-burst-products .pos-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .pos-burst-products .pos-product-tile--burst {
    align-items: center;
    display: grid !important;
    gap: 5px 10px;
    grid-template-columns: minmax(92px, 34%) minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    min-height: 112px;
    padding: 7px;
    text-align: left;
  }

  .pos-burst-products .pos-product-tile--burst > img,
  .pos-burst-products .pos-product-tile--burst > .pos-product-icon {
    align-self: stretch;
    grid-column: 1;
    grid-row: 1 / 3;
    height: 98px !important;
    margin: 0;
    object-fit: contain !important;
    width: 100%;
  }

  .pos-burst-products .pos-product-tile--burst > strong {
    align-self: end;
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    min-height: 0;
  }

  .pos-burst-products .pos-product-tile--burst > .pos-product-price {
    align-self: end;
    color: var(--brand);
    font-size: 18px;
    grid-column: 3;
    grid-row: 1;
    white-space: nowrap;
  }

  .pos-burst-products .pos-product-tile--burst > .pos-product-description {
    align-self: start;
    color: var(--muted);
    display: -webkit-box;
    font-size: 10px;
    font-weight: 700;
    grid-column: 2 / 4;
    grid-row: 2;
    line-height: 1.25;
    overflow: hidden;
    text-align: left;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 780px) {
  .pos-burst-products .pos-product-tile--burst > .pos-product-description {
    color: var(--muted);
    display: -webkit-box;
    font-size: 9px;
    line-height: 1.2;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

.school-home-v2 {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(245, 252, 241, 0.96) 42%, rgba(255, 248, 235, 0.92) 100%),
    #f8fbf2;
  overflow-x: clip;
}

.school-home-v2 .home-v2-shell {
  display: grid;
  gap: 0;
}

.school-home-v2 .home-topbar {
  box-shadow: 0 6px 22px rgba(23, 52, 33, 0.07);
}

.school-home-v2 .home-hero {
  background: #edf8e7;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(20, 60, 39, 0.12);
  margin: 14px auto 0;
  max-width: min(1220px, calc(100% - 28px));
  overflow: hidden;
  width: 100%;
}

.school-home-v2 .home-main-nav {
  align-items: stretch;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(22, 143, 92, 0.2);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(20, 60, 39, 0.14);
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  margin: 10px auto 0;
  max-width: min(1220px, calc(100% - 28px));
  padding: 10px;
  position: relative;
  z-index: 3;
}

.school-home-v2 .home-main-nav a {
  align-items: center;
  background: #fff;
  border: 1px solid #d6e8d2;
  border-radius: 8px;
  color: #143c27;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 7px;
  justify-content: center;
  min-height: 48px;
  min-width: 0;
  padding: 8px 10px;
  text-align: center;
  text-decoration: none;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.school-home-v2 .home-main-nav a:hover,
.school-home-v2 .home-main-nav a:focus-visible {
  border-color: rgba(22, 143, 92, 0.5);
  box-shadow: 0 10px 20px rgba(20, 60, 39, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.school-home-v2 .home-main-nav a.active {
  background: #168f5c;
  border-color: #168f5c;
  color: #fff;
}

.school-home-v2 .home-main-nav-whatsapp {
  background: #1fae5b !important;
  border-color: #1fae5b !important;
  color: #fff !important;
}

.school-home-v2 .home-main-nav i {
  color: currentColor;
  font-size: 16px;
}

.school-home-v2 .home-benefit-row {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 14px auto 0;
  max-width: min(1220px, calc(100% - 28px));
}

.school-home-v2 .home-benefit-row span {
  align-items: center;
  background: #fff;
  border: 1px solid #d8ead1;
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(20, 60, 39, 0.08);
  color: #193522;
  display: flex;
  font-size: 12px;
  font-weight: 850;
  gap: 10px;
  line-height: 1.25;
  min-height: 58px;
  padding: 10px 12px;
}

.school-home-v2 .home-benefit-row i {
  align-items: center;
  background: #eff9e9;
  border-radius: 8px;
  color: #168f5c;
  display: inline-flex;
  flex: 0 0 34px;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.school-home-v2 .home-benefit-row span:nth-child(2) i {
  background: #fff7d7;
  color: #d08a10;
}

.school-home-v2 .home-benefit-row span:nth-child(3) i {
  background: #eaf8ff;
  color: #2d6cdf;
}

.school-home-v2 .home-benefit-row span:nth-child(4) i {
  background: #fff1ee;
  color: #cc3f3f;
}

.school-home-v2 .home-benefit-row span:nth-child(5) i {
  background: #edf4ff;
  color: #164f9c;
}

.school-home-v2 .home-strip--v2 {
  background: transparent;
  border: 0;
  gap: 12px;
  margin: 16px auto 0;
  max-width: min(1220px, calc(100% - 28px));
  padding: 0;
  width: 100%;
}

.school-home-v2 .home-strip--v2 a img {
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.14);
}

.school-home-v2 .home-v2-grid {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 18px auto 0;
  max-width: min(1220px, calc(100% - 28px));
  padding-bottom: 22px;
  width: 100%;
}

.school-home-v2 .home-v2-panel,
.school-home-v2 .home-v2-grid > .mini-banner,
.school-home-v2 .home-v2-grid > .birthday-banner {
  box-shadow: 0 14px 34px rgba(20, 60, 39, 0.1);
}

.school-home-v2 .home-v2-grid > .mini-banner,
.school-home-v2 .home-v2-grid > .birthday-banner {
  min-height: 100%;
}

.school-home-v2 .home-v2-card-link {
  flex: 0 0 auto;
  font-size: 12px;
  min-height: 34px;
  padding: 7px 10px;
}

.school-home-v2 .home-v2-menu-card {
  align-content: start;
  background: linear-gradient(180deg, #f7fff2 0%, #ffffff 100%);
  border-color: #cbe9ba;
  gap: 8px;
  padding: 8px;
}

.school-home-v2 .home-v2-menu-card .menu-card-header-link {
  aspect-ratio: 14 / 5;
  line-height: 0;
  margin: 0;
  order: 1;
}

.school-home-v2 .home-v2-menu-card .menu-banner-head {
  align-items: center;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(22, 143, 92, 0.18);
  border-radius: 8px;
  gap: 8px;
  justify-content: flex-start;
  order: 2;
  padding: 8px;
}

.school-home-v2 .home-v2-menu-card .menu-image-link {
  order: 3;
}

.school-home-v2 .home-v2-menu-card .menu-card-full-link {
  justify-content: center;
  order: 4;
  width: 100%;
}

.school-home-v2 .home-v2-menu-card .menu-banner-heading strong {
  color: #143c27;
  font-size: 26px;
  line-height: 1;
}

.school-home-v2 .home-v2-menu-card .menu-banner-heading i {
  align-items: center;
  background: #e6f8dc;
  border-radius: 8px;
  color: #168f5c;
  display: inline-flex;
  flex: 0 0 34px;
  font-size: 15px;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.school-home-v2 .home-v2-menu-card .menu-banner-heading small {
  color: #143c27;
  font-size: 21px;
  font-weight: 1000;
  line-height: 1.05;
  text-transform: capitalize;
  white-space: nowrap;
}

.school-home-v2 .home-v2-menu-card.menu-image-banner-card--tomorrow .menu-banner-heading i {
  background: #fff3cf;
  color: #d08a10;
}

.school-home-v2 .home-v2-menu-card .menu-image-strip {
  aspect-ratio: 4 / 3;
  min-height: clamp(330px, 28vw, 450px);
}

.school-home-v2 .home-v2-menu-card .menu-card-header-img {
  aspect-ratio: auto;
  height: 100%;
  object-fit: fill;
  object-position: center;
  width: 100%;
}

.school-home-v2 .home-v2-menu-card .menu-card-header-link:not([hidden]) + .menu-image-link {
  margin-top: 0;
}

.school-home-v2 .upcoming-home-banner {
  background: linear-gradient(180deg, #fff7de 0%, #fffdf6 100%);
  grid-column: 1 / -1;
}

.school-home-v2 .upcoming-products-track {
  grid-auto-columns: calc((100% - 36px) / 4);
}

.school-home-v2 .upcoming-product-image {
  padding: 4px;
}

.school-home-v2 .upcoming-product-image img {
  min-height: 0;
  height: clamp(240px, 20vw, 310px);
  object-fit: contain;
}

.school-home-v2 .takeaway-home-banner {
  align-content: start;
  grid-column: 1 / -1;
  padding: 12px;
}

.school-home-v2 .takeaway-banner-link img {
  aspect-ratio: 1672 / 941;
  height: auto;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

.stationery-home-panel {
  background: linear-gradient(180deg, #f8fff2 0%, #fff 100%);
  border-color: #cfe8c5;
  overflow: hidden;
}

.stationery-header-link {
  background: #f4fbef;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.stationery-header-image {
  aspect-ratio: 2172 / 724;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.stationery-home-panel .mini-banner-head i {
  color: #168f5c;
}

.stationery-home-panel .mini-banner-head {
  align-items: center;
}

.stationery-carousel-head {
  align-items: center;
  border-top: 1px dashed rgba(22, 143, 92, 0.18);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding-top: 2px;
}

.stationery-carousel-actions {
  align-items: center;
  display: flex;
  gap: 8px;
}

.stationery-carousel-actions button {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.24);
  border-radius: 8px;
  color: #143c27;
  display: inline-flex;
  height: 34px;
  justify-content: center;
  min-width: 34px;
  padding: 0;
}

.stationery-carousel-actions button:hover,
.stationery-carousel-actions button:focus-visible {
  background: #e9f8e7;
  border-color: rgba(22, 143, 92, 0.44);
  outline: none;
}

.stationery-carousel-actions button:disabled {
  cursor: default;
  opacity: 0.45;
}

.stationery-products-carousel {
  overflow: hidden;
  position: relative;
}

.stationery-products-track {
  display: grid;
  gap: 10px;
  grid-auto-columns: calc((100% - 10px) / 2);
  grid-auto-flow: column;
  grid-template-columns: none;
  overflow-x: auto;
  padding: 2px 2px 10px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.stationery-products-track::-webkit-scrollbar {
  display: none;
}

.stationery-product-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stationery-product {
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  scroll-snap-align: start;
  text-decoration: none;
  transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.stationery-product:hover,
.stationery-product:focus-visible {
  border-color: rgba(22, 143, 92, 0.44);
  box-shadow: 0 12px 24px rgba(20, 60, 39, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.stationery-product img {
  aspect-ratio: 1 / 1;
  background: #fffdf4;
  display: block;
  object-fit: cover;
  width: 100%;
}

.stationery-product-placeholder {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, #f4fbef, #fffaf0);
  color: #168f5c;
  display: flex;
  font-size: 34px;
  justify-content: center;
  padding: 0;
  width: 100%;
}

.stationery-product > span:not(.stationery-product-meta):not(.stationery-product-placeholder) {
  display: grid;
  gap: 4px;
  padding: 0 10px;
}

.stationery-product strong {
  color: #143c27;
  font-size: 13px;
  line-height: 1.12;
}

.stationery-product small {
  color: #637466;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}

.stationery-product b {
  background: #e9f8e7;
  border-radius: 999px;
  color: #168f5c;
  font-size: 11px;
  justify-self: start;
  line-height: 1;
  margin: 0 10px 10px;
  padding: 6px 9px;
}

.stationery-product-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: space-between;
  padding: 0 10px 10px;
}

.stationery-product-meta b {
  margin: 0;
}

.stationery-product-meta b:not(.is-available) {
  background: #fff4d7;
  color: #946100;
}

.stationery-product-meta em {
  color: #143c27;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.stationery-product--empty {
  background: rgba(255, 255, 255, 0.78);
  border: 1px dashed rgba(22, 143, 92, 0.28);
  min-height: 220px;
}

.home-v2-note-row {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-v2-note-row span {
  align-items: center;
  background: #f5f0ff;
  border: 1px solid #ded3ff;
  border-radius: 8px;
  color: #3d2b76;
  display: flex;
  font-size: 12px;
  font-weight: 900;
  gap: 8px;
  min-height: 42px;
  padding: 8px 10px;
}

.service-home-card {
  background: linear-gradient(180deg, #fffef8 0%, #ffffff 100%);
  border-color: #dcebd5;
  overflow: hidden;
}

.service-home-card--transport {
  background: linear-gradient(180deg, #fff9e8 0%, #f6fbff 100%);
  border-color: #f1d083;
}

.service-home-card--uniforms {
  background: linear-gradient(180deg, #f5fbff 0%, #ffffff 100%);
  border-color: #c9dff1;
}

.service-banner-link {
  background: #fff;
  border: 1px solid rgba(20, 60, 39, 0.12);
  border-radius: 8px;
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.service-banner-image {
  background: #fff;
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

.service-home-card .mini-banner-head {
  align-items: center;
}

.service-home-card .mini-banner-head > i {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  flex: 0 0 auto;
  height: 40px;
  justify-content: center;
  width: 40px;
}

.service-home-card--transport .mini-banner-head > i {
  background: #fff1c4;
  color: #c87b00;
}

.service-home-card--uniforms .mini-banner-head > i {
  background: #e8f2ff;
  color: #1b5fac;
}

.school-home-v2 .community-home-banner {
  background: linear-gradient(180deg, #eefaff 0%, #f8fff6 100%);
  border-color: #bfe6ff;
  grid-column: auto;
  overflow: visible;
}

.community-header-link {
  background: #f7fbf4;
  border: 1px solid rgba(22, 143, 92, 0.16);
  border-radius: 8px;
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.community-header-image {
  aspect-ratio: 12 / 5;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.school-home-v2 .community-home-banner .mini-banner-head {
  align-items: center;
}

.home-community-card-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: visible;
}

.home-community-access-card {
  align-content: start;
  background: #fff;
  border: 1px solid rgba(22, 143, 92, 0.18);
  border-radius: 8px;
  color: #143c27;
  display: grid;
  gap: 8px;
  padding: 8px;
  position: relative;
  text-decoration: none;
  transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.home-community-access-card:hover,
.home-community-access-card:focus-visible {
  border-color: rgba(22, 143, 92, 0.46);
  box-shadow: 0 12px 24px rgba(20, 60, 39, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.home-community-access-card img {
  aspect-ratio: 2 / 3;
  background: #f7fbf4;
  border-radius: 8px;
  display: block;
  object-fit: cover;
  object-position: center top;
  width: 100%;
}

.home-community-access-card .community-access-label {
  color: #143c27;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.15;
  min-height: 28px;
  text-align: center;
}

.home-community-access-card .community-popover {
  background: #fffef8;
  border: 1px solid rgba(22, 143, 92, 0.28);
  border-radius: 8px;
  bottom: calc(100% + 12px);
  box-shadow: 0 14px 30px rgba(20, 60, 39, 0.18);
  color: #143c27;
  font-size: 12px;
  font-weight: 800;
  left: 50%;
  line-height: 1.25;
  max-width: 230px;
  opacity: 0;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  text-align: left;
  transform: translate(-50%, 8px);
  transition: opacity 140ms ease, transform 140ms ease;
  width: max-content;
  z-index: 20;
}

.home-community-access-card .community-popover::after {
  background: #fffef8;
  border-bottom: 1px solid rgba(22, 143, 92, 0.28);
  border-right: 1px solid rgba(22, 143, 92, 0.28);
  bottom: -7px;
  content: "";
  height: 12px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
}

.home-community-access-card:hover .community-popover,
.home-community-access-card:focus-visible .community-popover,
.home-community-access-card.is-popover-open .community-popover {
  opacity: 1;
  transform: translate(-50%, 0);
}

.registered-directory-note {
  align-items: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px dashed rgba(22, 143, 92, 0.32);
  border-radius: 8px;
  display: grid;
  gap: 5px;
  grid-template-columns: 40px minmax(0, 1fr);
  margin-top: 4px;
  padding: 10px;
}

.registered-directory-note i {
  align-items: center;
  background: #e4f7ec;
  border-radius: 8px;
  color: #168f5c;
  display: inline-flex;
  height: 40px;
  justify-content: center;
  width: 40px;
}

.registered-directory-note strong,
.registered-directory-note span {
  grid-column: 2;
}

.registered-directory-note strong {
  color: #143c27;
  font-size: 13px;
}

.registered-directory-note span {
  color: #637466;
  font-size: 12px;
}

.school-home-v2 .notices-home-banner .mini-banner-head {
  align-items: center;
}

.school-home-v2 .notices-home-banner,
.school-home-v2 .home-v2-birthday {
  border-width: 2px;
  padding: 20px;
}

.school-home-v2 .notices-home-banner .mini-banner-image,
.school-home-v2 .home-v2-birthday .birthday-slide-img {
  box-shadow: 0 10px 24px rgba(20, 60, 39, 0.08);
}

.school-home-v2 .notices-home-banner .announcement-mini {
  min-height: 76px;
  padding: 14px;
}

.school-home-v2 .notices-home-banner .announcement-mini strong,
.school-home-v2 .home-v2-birthday #birthdayDynamic > strong {
  font-size: 16px;
  line-height: 1.2;
}

.school-home-v2 .notices-home-banner .announcement-mini span,
.school-home-v2 .home-v2-birthday #birthdayDynamic {
  font-size: 13px;
}

.school-home-v2 .home-v2-birthday {
  background: #fffef8;
}

.school-home-v2 .home-v2-trust-panel {
  background: linear-gradient(135deg, #eff9e9 0%, #fffef2 100%);
  border-color: #cce9b6;
  grid-column: 1 / -1;
  padding: 20px;
}

.school-home-v2 .home-v2-trust-panel .home-metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.school-home-v2 .home-v2-trust-panel .home-metrics div {
  background: linear-gradient(135deg, #168f5c, #0e5e3e);
  min-height: 118px;
}

.school-home-v2 .home-v2-trust-panel .home-metrics strong {
  color: #fff;
  font-size: clamp(34px, 4vw, 46px);
  text-shadow: 0 2px 8px rgba(6, 42, 25, 0.18);
}

.school-home-v2 .home-v2-trust-panel .home-metrics span {
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(13px, 1.2vw, 16px);
  font-weight: 900;
  overflow-wrap: anywhere;
}

.home-v2-signature {
  color: #143c27;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.25;
  margin: 0;
  text-align: center;
}

.home-v2-footer {
  background: #fffef8;
  border: 1px solid #dcebd5;
  border-radius: 8px;
  box-shadow: 0 -8px 28px rgba(20, 60, 39, 0.08);
  display: grid;
  gap: 0;
  margin: 12px auto 0;
  max-width: min(1220px, calc(100% - 28px));
  overflow: hidden;
  width: 100%;
}

.home-v2-footer img {
  aspect-ratio: 2172 / 420;
  display: block;
  height: auto;
  object-fit: cover;
  object-position: center top;
  width: 100%;
}

.home-v2-footer-links {
  align-items: center;
  color: #44584a;
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 14px;
  justify-content: center;
  padding: 14px 18px 18px;
}

.home-v2-footer-links a {
  color: #143c27;
  font-weight: 850;
  text-decoration: none;
}

.home-v2-footer-links a:hover,
.home-v2-footer-links a:focus-visible {
  color: #168f5c;
  outline: none;
  text-decoration: underline;
}

@media (max-width: 1120px) {
  .community-module-hero,
  .community-module-chat,
  .community-video-workbench {
    grid-template-columns: 1fr;
  }

  .community-module-grid,
  .community-module-grid--family,
  .portal-community-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-module-hero-media img {
    aspect-ratio: 16 / 10;
    height: auto;
  }

  .school-home-v2 .home-main-nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 12px;
  }

  .school-home-v2 .home-benefit-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .school-home-v2 .home-strip--v2 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .school-home-v2 .home-v2-grid {
    grid-template-columns: 1fr;
  }

  .school-home-v2 .upcoming-products-track {
    grid-auto-columns: calc((100% - 12px) / 2);
  }

  .school-home-v2 .community-home-banner {
    grid-column: 1;
  }
}

@media (max-width: 720px) {
  .community-module-hero-copy {
    padding: 4px;
  }

  .community-module-hero-copy h2 {
    font-size: 34px;
  }

  .community-module-grid,
  .community-module-grid--family,
  .portal-community-module-grid,
  .portal-talent-grid {
    grid-template-columns: 1fr;
  }

  .module-actions {
    display: grid;
  }

  .module-chat-message {
    max-width: 100%;
  }

  .school-home-v2 .home-main-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: calc(100% - 20px);
    padding: 8px;
  }

  .school-home-v2 .home-hero,
  .school-home-v2 .home-benefit-row,
  .school-home-v2 .home-strip--v2,
  .school-home-v2 .home-v2-grid,
  .school-home-v2 .home-v2-footer {
    max-width: calc(100% - 20px);
  }

  .school-home-v2 .home-benefit-row,
  .school-home-v2 .home-strip--v2 {
    grid-template-columns: 1fr;
  }

  .school-home-v2 .home-main-nav {
    display: none;
  }

  .school-home-v2 .home-benefit-row {
    grid-auto-columns: minmax(210px, 72vw);
    grid-auto-flow: column;
    grid-template-columns: none;
    margin-top: 10px;
    overflow-x: auto;
    padding: 0 0 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .school-home-v2 .home-benefit-row::-webkit-scrollbar {
    display: none;
  }

  .school-home-v2 .home-benefit-row span {
    min-height: 48px;
    scroll-snap-align: start;
  }

  .school-home-v2 .home-strip--v2 {
    grid-auto-columns: minmax(220px, 76vw);
    grid-auto-flow: column;
    grid-template-columns: none;
    margin-top: 10px;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 2px 10px 10px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .school-home-v2 .home-strip--v2::-webkit-scrollbar {
    display: none;
  }

  .school-home-v2 .home-strip--v2 a {
    aspect-ratio: 3 / 1;
    scroll-snap-align: start;
    width: auto;
  }

  .school-home-v2 .home-strip--v2 a img {
    height: 100%;
    object-fit: contain;
    width: 100%;
  }

  .school-home-v2 .menu-banner-head,
  .stationery-home-panel .mini-banner-head,
  .service-home-card .mini-banner-head,
  .school-home-v2 .community-home-banner .mini-banner-head,
  .school-home-v2 .notices-home-banner .mini-banner-head {
    align-items: stretch;
    flex-direction: column;
  }

  .school-home-v2 .home-v2-card-link {
    width: 100%;
  }

  .school-home-v2 .home-v2-menu-card .menu-banner-heading strong {
    font-size: 22px;
  }

  .school-home-v2 .home-v2-menu-card .menu-banner-heading small {
    font-size: clamp(17px, 5vw, 19px);
  }

  .school-home-v2 .upcoming-carousel-head {
    padding: 12px 10px;
  }

  .school-home-v2 .upcoming-carousel-head strong {
    font-size: 17px;
  }

  .stationery-products-track {
    grid-auto-columns: calc((100% - 10px) / 2);
  }

  .stationery-product-grid,
  .home-community-card-grid,
  .school-home-v2 .home-v2-trust-panel .home-metrics,
  .home-v2-note-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .school-home-v2 .home-v2-menu-card .menu-image-strip,
  .school-home-v2 .takeaway-banner-link img {
    min-height: 0;
  }

  .school-home-v2 .takeaway-banner-link img {
    height: auto;
    object-fit: contain;
  }

  .school-home-v2 .upcoming-products-track {
    grid-auto-columns: minmax(250px, 92%);
  }

  .home-community-access-card .community-popover {
    bottom: auto;
    left: 50%;
    max-width: min(250px, calc(100vw - 36px));
    top: calc(100% + 10px);
    transform: translate(-50%, -6px);
  }

  .home-community-access-card .community-popover::after {
    border-bottom: 0;
    border-left: 1px solid rgba(22, 143, 92, 0.28);
    border-right: 0;
    border-top: 1px solid rgba(22, 143, 92, 0.28);
    bottom: auto;
    top: -7px;
  }

  .home-community-access-card:hover .community-popover,
  .home-community-access-card:focus-visible .community-popover,
  .home-community-access-card.is-popover-open .community-popover {
    transform: translate(-50%, 0);
  }
}

@media (max-width: 460px) {
  .pos-recess-brief {
    grid-template-columns: 1fr;
  }

  .pos-burst-head h2 {
    font-size: 30px;
  }

  .pos-product-grid,
  .pos-burst-products .pos-product-grid {
    gap: 6px;
  }

  .pos-burst-toolbar,
  .pos-burst-cart {
    padding: 8px;
  }

  .pos-burst-products {
    padding-bottom: 260px;
    scroll-padding-bottom: 260px;
  }

  .pos-burst-cart {
    bottom: 8px;
    left: 8px;
    max-height: min(260px, 45vh);
    right: 8px;
  }

  .pos-burst-cart-lines {
    max-height: 62px;
  }

  .pos-cash-buttons button {
    font-size: 22px;
    min-height: 56px;
    padding: 9px 6px;
  }

  .pos-cash-buttons button:first-child {
    font-size: 16px;
  }

  .pos-budget-helper {
    padding: 8px;
  }

  .pos-budget-tabs {
    gap: 5px;
  }

  .pos-budget-tabs button {
    font-size: 11px;
    gap: 4px;
    min-height: 44px;
    padding: 6px 5px;
  }

  .pos-burst-pay .field label {
    font-size: 9px;
  }

  .pos-burst-pay input,
  .pos-burst-pay select {
    font-size: 13px;
    min-height: 38px;
  }

  .pos-burst-total strong {
    font-size: 28px;
  }

  .school-home-v2 .home-main-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .school-home-v2 .home-benefit-row {
    grid-auto-columns: minmax(210px, 82vw);
  }

  .school-home-v2 .home-strip--v2 {
    grid-auto-columns: minmax(220px, 84vw);
  }

  .school-home-v2 .home-v2-menu-card .menu-banner-heading small {
    font-size: clamp(16px, 4.6vw, 18px);
  }

  .school-home-v2 .upcoming-carousel-head strong {
    font-size: 16px;
  }

  .stationery-products-track {
    grid-auto-columns: minmax(0, 100%);
  }

  .stationery-product-grid,
  .home-community-card-grid,
  .school-home-v2 .home-v2-trust-panel .home-metrics,
  .home-v2-note-row {
    grid-template-columns: 1fr;
  }

  .registered-directory-note {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .registered-directory-note strong,
  .registered-directory-note span {
    grid-column: 1;
  }
}

/* Rafaga responsive final: evita que reglas historicas vuelvan a comprimirla. */
@media (max-width: 1100px) {
  .pos-burst-modal {
    grid-template-rows: auto auto minmax(0, 1fr) auto;
  }

  .pos-burst-body {
    display: block;
    overflow: hidden;
    padding: 7px;
  }

  .pos-burst-products {
    height: 100%;
    overflow: hidden;
    padding-bottom: 0;
    scroll-padding-bottom: 0;
  }

  .pos-burst-products .pos-product-grid {
    height: 100%;
    overflow-y: auto;
  }

  .pos-burst-footer {
    grid-template-columns: minmax(190px, 0.7fr) minmax(330px, 1.2fr) minmax(400px, 1.5fr);
  }
}

@media (max-width: 780px) {
  .pos-burst-head {
    align-items: center;
    flex-direction: row;
    padding: 7px 9px;
  }

  .pos-burst-head h2 {
    font-size: 22px;
  }

  .pos-burst-head .eyebrow,
  .pos-burst-head > div:first-child > span {
    font-size: 9px;
  }

  .pos-burst-head-actions {
    flex-wrap: nowrap;
    width: auto;
  }

  .pos-wave-tabs {
    width: auto;
  }

  .pos-wave-tabs button {
    min-height: 30px;
    padding: 4px 7px;
  }

  .pos-burst-controls {
    gap: 5px;
    padding: 5px 7px;
  }

  .pos-burst-toolbar {
    align-items: center;
    flex-direction: row;
    gap: 6px;
  }

  .pos-burst-toolbar > div:first-child {
    display: none;
  }

  .pos-burst-toolbar .pos-scope-tabs {
    width: 100%;
  }

  .pos-budget-helper--burst .pos-budget-head {
    grid-template-columns: 80px minmax(0, 1fr);
  }

  .pos-budget-helper--burst .pos-budget-head > div:nth-child(2) {
    display: none;
  }

  .pos-budget-helper--burst .pos-budget-tabs {
    grid-column: 2;
    width: 100%;
  }

  .pos-budget-helper--burst .pos-budget-tabs button {
    font-size: 9px;
    min-height: 34px;
    padding: 3px;
  }

  .pos-budget-helper--burst .pos-budget-results {
    display: none;
  }

  .pos-burst-products .pos-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pos-product-tile--burst {
    grid-template-rows: auto minmax(28px, auto) auto;
    min-height: 0;
  }

  .pos-product-tile--burst img,
  .pos-product-tile--burst .pos-product-icon {
    height: clamp(92px, 16vh, 132px);
  }

  .pos-product-tile--burst strong {
    font-size: 11px;
    min-height: 27px;
  }

  .pos-product-tile--burst .pos-product-price {
    font-size: 15px;
  }

  .pos-burst-footer {
    gap: 5px;
    grid-template-columns: 1fr;
    padding: 5px 7px 7px;
  }

  .pos-burst-footer .pos-burst-total {
    min-height: 42px;
    padding: 7px 10px;
  }

  .pos-burst-footer .pos-burst-total strong {
    font-size: 24px;
  }

  .pos-burst-footer .pos-cash-field > label {
    display: none;
  }

  .pos-burst-footer .pos-cash-buttons {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .pos-burst-footer .pos-cash-buttons button,
  .pos-burst-footer .pos-cash-buttons button:first-child {
    font-size: 11px;
    min-height: 34px;
    padding: 3px 1px;
  }

  .pos-burst-payment-row {
    grid-template-columns: minmax(90px, 1fr) 70px 70px minmax(105px, auto);
  }

  .pos-burst-payment-row input,
  .pos-burst-payment-row select,
  .pos-burst-payment-row button {
    font-size: 10px;
    min-height: 36px;
    padding: 4px;
  }

  .pos-burst-sheet-backdrop {
    align-items: flex-end;
    padding: 0;
  }

  .pos-burst-sheet {
    border-radius: 8px 8px 0 0;
    max-height: 82vh;
    max-width: none;
    width: 100%;
  }

  .pos-account-qr-row {
    grid-template-columns: 1fr;
  }
}

.prepaid-admin-panel {
  border-left: 4px solid #0f8a55;
}

.prepaid-admin-panel .form-grid .two-wide {
  grid-column: span 2;
}

.prepaid-toolbar {
  margin-top: 14px;
}

.prepaid-balance strong {
  color: #0f6845;
}

.portal-catalog-card {
  grid-column: 1 / -1;
}

.portal-product-toolbar {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) auto;
  margin: 14px 0;
}

.portal-category-tabs {
  justify-content: flex-end;
}

.portal-order-layout {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
}

.portal-product-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-product-card {
  background: #fff;
  border: 1px solid #d7e8d7;
  border-radius: 8px;
  display: grid;
  overflow: hidden;
}

.portal-product-image {
  aspect-ratio: 4 / 3;
  background: #eff7ed;
  border: 0;
  cursor: pointer;
  display: block;
  padding: 0;
  width: 100%;
}

.portal-product-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.portal-product-body {
  display: grid;
  gap: 8px;
  padding: 10px;
}

.portal-product-body h4 {
  color: #1d2a21;
  font-size: 16px;
  line-height: 1.15;
  margin: 0;
}

.portal-product-body p {
  color: #637466;
  font-size: 12px;
  line-height: 1.25;
  margin: 0;
}

.portal-product-source {
  color: #0f8a55;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.portal-product-meta {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.portal-product-meta strong {
  color: #0f8a55;
  font-size: 17px;
}

.portal-product-meta span {
  color: #637466;
  font-size: 11px;
  font-weight: 800;
}

.portal-order-panel {
  background: #fbfff9;
  border: 1px solid #d7e8d7;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
  position: sticky;
  top: 84px;
}

.portal-order-row {
  align-items: center;
  border-bottom: 1px solid #e4efe3;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  padding: 8px 0;
}

.portal-order-row small {
  color: #637466;
  display: block;
  font-weight: 800;
  margin-top: 2px;
}

.portal-order-row-actions {
  display: flex;
  gap: 5px;
}

.credential-info-panel {
  margin: 16px auto 0;
  max-width: 520px;
}

.prepaid-card-print {
  color: #f6fff7;
  margin: 18px auto;
  width: min(86mm, 92vw);
}

.prepaid-card-bg {
  aspect-ratio: 1.586 / 1;
  background:
    linear-gradient(135deg, rgba(255,255,255,.12), transparent 34%),
    linear-gradient(145deg, #092c1d, #0f8a55 56%, #c8a348);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(15,58,36,.28);
  display: grid;
  gap: 14px;
  padding: 16px;
}

.prepaid-card-top,
.prepaid-card-bottom {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.prepaid-card-top img {
  background: rgba(255,255,255,.92);
  border-radius: 8px;
  height: 36px;
  object-fit: contain;
  padding: 4px;
  width: 44px;
}

.prepaid-card-top span,
.prepaid-card-bottom span,
.prepaid-card-bottom small,
.prepaid-card-qr small {
  color: rgba(255,255,255,.78);
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.prepaid-card-top strong,
.prepaid-card-bottom strong {
  color: #fff;
  display: block;
  font-size: 15px;
  line-height: 1.1;
}

.prepaid-card-number {
  color: #fffbe7;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 1px;
  text-shadow: 0 2px 8px rgba(0,0,0,.28);
}

.prepaid-card-qr {
  background: rgba(255,255,255,.95);
  border-radius: 8px;
  color: #0d4029;
  padding: 5px;
  text-align: center;
}

.prepaid-card-qr img {
  display: block;
  height: 58px;
  width: 58px;
}

.prepaid-card-qr small {
  color: #0d4029;
  font-size: 7px;
  margin-top: 2px;
}

@media print {
  .prepaid-card-print {
    break-inside: avoid;
    margin: 0;
    width: 86mm;
  }

  .prepaid-card-bg {
    box-shadow: none;
  }
}

@media (max-width: 1100px) {
  .portal-order-layout {
    grid-template-columns: 1fr;
  }

  .portal-order-panel {
    position: static;
  }
}

@media (max-width: 760px) {
  .portal-product-toolbar {
    grid-template-columns: 1fr;
  }

  .portal-category-tabs {
    justify-content: flex-start;
  }

  .portal-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .portal-product-grid {
    grid-template-columns: 1fr;
  }

  .prepaid-admin-panel .form-grid .two-wide {
    grid-column: 1;
  }
}

/* Z Fold y moviles con viewport logico ancho: usar siempre la experiencia tactil. */
@media (max-width: 1100px) {
  html:has(.pos-burst-backdrop),
  body:has(.pos-burst-backdrop) {
    height: 100%;
    overflow: hidden !important;
  }

  .pos-burst-backdrop {
    height: 100dvh !important;
    inset: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    width: 100vw !important;
  }

  .pos-burst-modal {
    border: 0 !important;
    border-radius: 0 !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    width: 100vw !important;
  }

  .pos-burst-head {
    padding: 7px 9px !important;
  }

  .pos-burst-head h2 {
    font-size: 22px !important;
  }

  .pos-burst-controls {
    gap: 5px !important;
    padding: 5px 7px !important;
  }

  .pos-budget-helper--burst {
    display: block !important;
  }

  .pos-budget-helper--burst .pos-budget-head {
    grid-template-columns: 84px minmax(0, 1fr) !important;
  }

  .pos-budget-helper--burst .pos-budget-head > div:nth-child(2),
  .pos-budget-helper--burst .pos-budget-results {
    display: none !important;
  }

  .pos-budget-helper--burst .pos-budget-tabs {
    grid-column: 2 !important;
    width: 100% !important;
  }

  .pos-budget-helper--burst .pos-budget-amount input {
    font-size: 18px !important;
    min-height: 36px !important;
    padding: 4px 7px !important;
  }

  .pos-budget-helper--burst .pos-budget-tabs button {
    font-size: 10px !important;
    min-height: 36px !important;
    padding: 3px !important;
  }

  .pos-burst-body,
  .pos-burst-products {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
  }

  .pos-burst-body {
    padding: 6px !important;
  }

  .pos-burst-products .pos-product-grid {
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 2px 2px 14px !important;
    scroll-padding-block: 8px 20px;
  }

  .pos-burst-products .pos-product-tile--burst {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 6px !important;
    text-align: left !important;
  }

  .pos-burst-products .pos-product-tile--burst > img,
  .pos-burst-products .pos-product-tile--burst > .pos-product-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    height: clamp(96px, 24vw, 150px) !important;
    margin: 0 0 5px !important;
    object-fit: contain !important;
    width: 100% !important;
  }

  .pos-burst-products .pos-product-tile--burst > strong,
  .pos-burst-products .pos-product-tile--burst > .pos-product-price,
  .pos-burst-products .pos-product-tile--burst > .pos-product-description {
    grid-column: 1 !important;
    min-height: 0 !important;
  }

  .pos-burst-products .pos-product-tile--burst > strong { grid-row: 2 !important; }
  .pos-burst-products .pos-product-tile--burst > .pos-product-price { grid-row: 3 !important; }
  .pos-burst-products .pos-product-tile--burst > .pos-product-description { grid-row: 4 !important; }

  .pos-burst-footer {
    background: #fff !important;
    bottom: auto !important;
    display: grid !important;
    gap: 4px !important;
    grid-template-columns: 1fr !important;
    left: auto !important;
    max-height: none !important;
    padding: 5px 7px max(7px, env(safe-area-inset-bottom)) !important;
    position: relative !important;
    right: auto !important;
    z-index: 12 !important;
  }

  .pos-burst-footer .pos-burst-total {
    min-height: 40px !important;
    padding: 6px 9px !important;
  }

  .pos-burst-footer .pos-burst-total strong {
    font-size: 22px !important;
  }

  .pos-burst-footer .pos-cash-field > label {
    display: none !important;
  }

  .pos-burst-footer .pos-cash-buttons {
    gap: 3px !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }

  .pos-burst-footer .pos-cash-buttons button {
    font-size: 12px !important;
    min-height: 34px !important;
    padding: 3px 1px !important;
  }

  .pos-burst-payment-row {
    grid-template-columns: minmax(100px, 1fr) 65px 72px minmax(115px, auto) !important;
  }

  .pos-burst-payment-row input,
  .pos-burst-payment-row select,
  .pos-burst-payment-row button {
    font-size: 11px !important;
    min-height: 36px !important;
  }
}

/* Modo rafaga v2: estas reglas finales son deliberadamente autoritativas. */
.pos-burst-products .pos-product-tile--burst strong,
.pos-burst-products .pos-product-tile--burst .pos-product-price {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

@media (max-width: 780px) {
  body:has(.pos-burst-backdrop) {
    overflow: hidden !important;
  }

  .pos-burst-backdrop {
    height: 100dvh !important;
    padding: 0 !important;
    width: 100vw !important;
  }

  .pos-burst-modal {
    border: 0 !important;
    border-radius: 0 !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    width: 100vw !important;
  }

  .pos-burst-head,
  .pos-burst-controls,
  .pos-burst-footer {
    position: relative !important;
    z-index: 10 !important;
  }

  .pos-burst-body,
  .pos-burst-products {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
  }

  .pos-burst-products .pos-product-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 2px 2px 12px !important;
    scroll-padding-block: 8px 18px;
  }

  .pos-burst-products .pos-product-tile--burst {
    display: grid !important;
    min-width: 0 !important;
  }

  .pos-burst-products .pos-product-tile--burst img,
  .pos-burst-products .pos-product-tile--burst .pos-product-icon {
    height: min(25vw, 118px) !important;
    object-fit: contain !important;
    width: 100% !important;
  }
}

/* Tarjeta operativa de rafaga v5: imagen + datos + cantidad + subtotal. */
.pos-burst-products .pos-product-tile--burst {
  align-items: stretch !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(86px, 38%) minmax(0, 1fr) !important;
  grid-template-rows: 1fr !important;
  min-height: 124px !important;
  padding: 7px !important;
  text-align: left !important;
}

.pos-burst-product-media {
  align-items: center;
  background: #fffaf0;
  border-radius: 7px;
  display: flex;
  grid-column: 1;
  min-width: 0;
  overflow: hidden;
}

.pos-burst-product-media > img,
.pos-burst-product-media > .pos-product-icon {
  height: 100% !important;
  margin: 0 !important;
  max-height: 128px;
  object-fit: contain !important;
  width: 100% !important;
}

.pos-burst-product-copy {
  display: grid;
  gap: 4px;
  grid-column: 2;
  grid-template-rows: auto auto minmax(22px, 1fr) auto auto;
  min-width: 0;
}

.pos-burst-product-copy > strong {
  font-size: 12px !important;
  line-height: 1.15;
  margin: 0 !important;
  min-height: 0 !important;
  overflow-wrap: anywhere;
}

.pos-burst-product-meta,
.pos-product-subtotal {
  align-items: center;
  display: flex;
  gap: 5px;
  justify-content: space-between;
  min-width: 0;
}

.pos-product-count {
  color: #637466 !important;
  font-size: 9px !important;
  font-weight: 800 !important;
}

.pos-burst-product-copy > .pos-burst-product-meta .pos-product-price {
  color: var(--brand) !important;
  display: block !important;
  font-size: 16px !important;
  font-weight: 1000 !important;
  white-space: nowrap;
}

.pos-burst-product-copy > .pos-product-description {
  color: var(--muted);
  display: -webkit-box !important;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.15;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.pos-product-quantity {
  align-items: center;
  display: grid;
  gap: 4px;
  grid-template-columns: 28px minmax(24px, 1fr) 28px;
}

.pos-product-quantity button {
  align-items: center;
  background: #eff8ee;
  border: 1px solid #b9dabc;
  border-radius: 6px;
  color: var(--brand-dark);
  display: inline-flex;
  height: 28px;
  justify-content: center;
  padding: 0;
  width: 28px;
}

.pos-product-quantity button:disabled {
  opacity: 0.35;
}

.pos-product-quantity b {
  color: var(--ink);
  font-size: 13px;
  text-align: center;
}

.pos-product-subtotal {
  color: #637466 !important;
  font-size: 9px !important;
  font-weight: 900 !important;
}

.pos-product-subtotal b {
  color: var(--brand-dark);
  font-size: 12px;
}

@media (max-width: 1100px) {
  html:has(.pos-burst-backdrop),
  body:has(.pos-burst-backdrop) {
    height: 100% !important;
    overscroll-behavior: none;
    overflow: hidden !important;
  }

  .pos-burst-backdrop,
  .pos-burst-modal {
    bottom: 0 !important;
    height: 100svh !important;
    inset: 0 !important;
    left: 0 !important;
    max-height: 100svh !important;
    position: fixed !important;
    right: 0 !important;
    top: 0 !important;
    width: 100vw !important;
  }

  .pos-burst-modal {
    contain: layout paint;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  .pos-burst-head,
  .pos-burst-controls,
  .pos-burst-footer {
    flex: none;
    transform: translateZ(0);
  }

  .pos-burst-body {
    min-height: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: contain;
    touch-action: pan-y;
  }

  .pos-burst-products .pos-product-grid {
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }

  .pos-burst-products .pos-product-tile--burst {
    grid-template-columns: minmax(72px, 42%) minmax(0, 1fr) !important;
    min-height: 118px !important;
  }

  .pos-burst-product-media > img,
  .pos-burst-product-media > .pos-product-icon {
    height: 112px !important;
  }

  .pos-burst-product-copy > strong {
    font-size: 10px !important;
  }

  .pos-burst-product-copy > .pos-burst-product-meta .pos-product-price {
    font-size: 14px !important;
  }
}

/* Rafaga v6: lectura y tacto primero en telefono y Z Fold cerrado. */
@media (max-width: 1100px) {
  .pos-burst-products .pos-product-tile--burst {
    gap: 8px !important;
    grid-template-columns: minmax(82px, 39%) minmax(0, 1fr) !important;
    min-height: 142px !important;
    padding: 8px !important;
  }

  .pos-burst-product-media > img,
  .pos-burst-product-media > .pos-product-icon {
    height: 126px !important;
    max-height: 126px !important;
  }

  .pos-burst-product-copy {
    gap: 7px !important;
    grid-template-rows: minmax(34px, auto) auto 42px auto !important;
  }

  .pos-burst-product-copy > strong {
    align-self: start;
    color: #10291d !important;
    display: -webkit-box !important;
    font-size: 14px !important;
    font-weight: 1000 !important;
    line-height: 1.15 !important;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .pos-burst-product-meta {
    align-items: center;
    border-bottom: 1px solid #dcebdd;
    padding-bottom: 5px;
  }

  .pos-product-count {
    color: #496355 !important;
    font-size: 11px !important;
  }

  .pos-burst-product-copy > .pos-burst-product-meta .pos-product-price {
    color: #087348 !important;
    font-size: 19px !important;
    line-height: 1 !important;
  }

  .pos-product-quantity {
    gap: 6px !important;
    grid-template-columns: 40px minmax(30px, 1fr) 40px !important;
  }

  .pos-product-quantity button {
    border-color: #8fc79b !important;
    border-radius: 7px !important;
    font-size: 16px !important;
    height: 40px !important;
    width: 40px !important;
  }

  .pos-product-quantity b {
    font-size: 18px !important;
    font-weight: 1000 !important;
  }

  .pos-product-subtotal {
    border-top: 1px solid #dcebdd;
    font-size: 11px !important;
    padding-top: 4px;
  }

  .pos-product-subtotal b {
    color: #10291d !important;
    font-size: 15px !important;
  }

  .pos-product-tile--burst .pos-quantity-badge {
    font-size: 14px !important;
    height: 30px !important;
    right: 5px !important;
    top: 5px !important;
    width: 30px !important;
  }
}

/* Rafaga v7: nombre completo arriba; imagen izquierda; precio y cantidad derecha. */
@media (max-width: 1100px) {
  .pos-burst-products .pos-product-tile--burst {
    align-items: stretch !important;
    gap: 8px 10px !important;
    grid-template-columns: minmax(88px, 42%) minmax(0, 1fr) !important;
    grid-template-rows: auto minmax(126px, 1fr) !important;
    min-height: 184px !important;
    padding: 0 8px 8px !important;
  }

  .pos-burst-product-name {
    align-items: center;
    background: #eaf6e8;
    border-bottom: 2px solid #9fcca5;
    color: #10291d !important;
    display: flex !important;
    font-size: 18px !important;
    font-weight: 1000 !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    line-height: 1.15 !important;
    margin: 0 -8px !important;
    min-height: 48px !important;
    overflow-wrap: anywhere;
    padding: 7px 10px !important;
  }

  .pos-burst-product-media {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  .pos-burst-product-media > img,
  .pos-burst-product-media > .pos-product-icon {
    height: 126px !important;
    max-height: 126px !important;
  }

  .pos-burst-product-copy {
    align-content: center;
    gap: 10px !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    grid-template-rows: auto 48px auto !important;
  }

  .pos-burst-product-meta {
    align-items: flex-end;
    border: 0 !important;
    display: grid !important;
    gap: 3px;
    padding: 0 !important;
  }

  .pos-burst-product-copy > .pos-burst-product-meta .pos-product-price {
    color: #087348 !important;
    font-size: 25px !important;
    grid-row: 1;
    line-height: 1 !important;
  }

  .pos-product-count {
    font-size: 12px !important;
    grid-row: 2;
  }

  .pos-product-quantity {
    gap: 8px !important;
    grid-template-columns: 46px minmax(32px, 1fr) 46px !important;
  }

  .pos-product-quantity button {
    font-size: 19px !important;
    height: 46px !important;
    width: 46px !important;
  }

  .pos-product-quantity b {
    font-size: 21px !important;
  }

  .pos-product-subtotal {
    background: #f0f8ee;
    border: 1px solid #c6dfc8;
    border-radius: 6px;
    font-size: 12px !important;
    padding: 5px 7px !important;
  }

  .pos-product-subtotal b {
    font-size: 18px !important;
    font-weight: 1000 !important;
  }

  .pos-product-tile--burst > .pos-quantity-badge {
    display: none !important;
  }
}

@media (min-width: 1101px) {
  .pos-burst-products .pos-product-tile--burst {
    grid-template-rows: auto 1fr !important;
    padding-top: 0 !important;
  }

  .pos-burst-product-name {
    background: #eaf6e8;
    border-bottom: 1px solid #b9dabc;
    color: #10291d !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    margin: 0 -7px !important;
    padding: 6px 8px !important;
  }

  .pos-burst-product-media { grid-column: 1 !important; grid-row: 2 !important; }
  .pos-burst-product-copy { grid-column: 2 !important; grid-row: 2 !important; }
}

/* Rafaga v8: protege el encabezado de reglas antiguas para strong. */
.pos-burst-products article.pos-product-tile--burst > strong.pos-burst-product-name {
  align-items: center !important;
  background: #eaf6e8 !important;
  border-bottom: 2px solid #9fcca5 !important;
  color: #10291d !important;
  display: flex !important;
  font-weight: 1000 !important;
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  line-height: 1.15 !important;
  min-height: 48px !important;
  opacity: 1 !important;
  overflow-wrap: anywhere;
  position: relative;
  visibility: visible !important;
  z-index: 3;
}

@media (max-width: 1100px) {
  .pos-burst-products article.pos-product-tile--burst > strong.pos-burst-product-name {
    font-size: 30px !important;
    letter-spacing: 0 !important;
    line-height: 1.08 !important;
    margin: 0 -8px !important;
    min-height: 76px !important;
    padding: 10px 12px !important;
  }

  .pos-burst-products .pos-product-tile--burst {
    min-height: 214px !important;
  }
}

@media (min-width: 1101px) {
  .pos-burst-products article.pos-product-tile--burst > strong.pos-burst-product-name {
    font-size: 15px !important;
    margin: 0 -7px !important;
    padding: 6px 8px !important;
  }
}

/* Rafaga v11: controles fijos legibles en Z Fold y pantallas tactiles. */
@media (max-width: 1100px) {
  .pos-burst-head {
    min-height: 76px !important;
    padding: 10px 12px !important;
  }

  .pos-burst-head h2 {
    font-size: 34px !important;
    line-height: 1 !important;
  }

  .pos-burst-head .eyebrow {
    font-size: 12px !important;
  }

  .pos-burst-head > div:first-child > span {
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  .pos-wave-tabs button,
  .pos-burst-head .icon-btn {
    font-size: 14px !important;
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 7px 10px !important;
  }

  .pos-burst-controls {
    gap: 8px !important;
    padding: 8px 10px !important;
  }

  .pos-burst-controls .pos-burst-toolbar {
    min-height: 50px !important;
    padding: 7px !important;
  }

  .pos-burst-toolbar .pos-scope-tabs button {
    font-size: 14px !important;
    min-height: 42px !important;
    padding: 7px 10px !important;
  }

  .pos-budget-helper--burst {
    padding: 8px !important;
  }

  .pos-budget-helper--burst .pos-budget-head {
    gap: 8px !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
  }

  .pos-budget-helper--burst .pos-budget-amount span {
    font-size: 13px !important;
  }

  .pos-budget-helper--burst .pos-budget-amount input {
    font-size: 24px !important;
    min-height: 50px !important;
    padding: 7px 9px !important;
  }

  .pos-budget-helper--burst .pos-budget-tabs button {
    font-size: 14px !important;
    min-height: 50px !important;
    padding: 7px 5px !important;
  }

  .pos-burst-footer {
    gap: 7px !important;
    padding: 8px 10px max(10px, env(safe-area-inset-bottom)) !important;
  }

  .pos-burst-footer .pos-burst-total {
    min-height: 58px !important;
    padding: 9px 12px !important;
  }

  .pos-burst-footer .pos-burst-total span {
    font-size: 15px !important;
  }

  .pos-burst-footer .pos-burst-total strong {
    font-size: 32px !important;
  }

  .pos-burst-footer .pos-cash-buttons {
    gap: 5px !important;
  }

  .pos-burst-footer .pos-cash-buttons button,
  .pos-burst-footer .pos-cash-buttons button:first-child {
    font-size: 15px !important;
    min-height: 44px !important;
    padding: 6px 2px !important;
  }

  .pos-burst-payment-row {
    align-items: end !important;
    gap: 7px !important;
    grid-template-columns: minmax(120px, 1.2fr) minmax(78px, 0.7fr) minmax(84px, 0.7fr) !important;
  }

  .pos-burst-payment-row label {
    font-size: 13px !important;
  }

  .pos-burst-payment-row input,
  .pos-burst-payment-row select {
    font-size: 15px !important;
    min-height: 44px !important;
    padding: 6px 8px !important;
  }

  .pos-burst-payment-row .pos-submit-btn {
    font-size: 17px !important;
    grid-column: 1 / -1 !important;
    min-height: 48px !important;
  }
}

/* Controles rápidos del catálogo escolar. */
.catalog-row-sold-out > td {
  background: #fff8eb;
  border-top: 2px solid #ed922b;
  border-bottom: 2px solid #ed922b;
}
.catalog-row-sold-out > td:first-child { border-left: 2px solid #ed922b; }
.catalog-row-sold-out > td:last-child { border-right: 2px solid #ed922b; }
.sold-out-chip,
.catalog-quick-toggle.is-sold-out {
  background: #fff0d7;
  border: 1px solid #ed922b;
  color: #8b4800;
}
.catalog-quick-controls,
.catalog-daily-bulk {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}
.catalog-daily-bulk {
  background: #f8fcf5;
  border: 1px solid #d8e4d5;
  border-radius: 8px;
  padding: 8px;
}
.catalog-daily-bulk strong { margin-right: 6px; }
.catalog-quick-toggle,
.catalog-day-toggle {
  background: #fff;
  border: 1px solid #bdd4bd;
  border-radius: 999px;
  color: #315b3c;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  min-height: 30px;
  padding: 5px 9px;
}
.catalog-day-toggle.is-on,
.catalog-quick-toggle.is-on {
  background: #e3f5e8;
  border-color: #168f5c;
  color: #075b38;
}
.catalog-quick-toggle.is-off {
  background: #fff8e5;
  border-color: #edc46d;
  color: #785500;
}
.availability-pill--sold-out.selected,
.availability-pill--sold-out:has(input:checked) {
  background: #ed922b;
  border-color: #ed922b;
  color: #fff;
}
.admin-product-photo img {
  background: #f7f8f3;
  object-fit: contain;
  object-position: center;
}

/* Catalogue: one product record alongside the searchable list. */
.catalog-workspace-wrap{--catalog-green:#155f43;max-width:1540px;margin:0 auto}.catalog-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,490px);gap:18px;align-items:start}.catalog-workspace [hidden]{display:none!important}.catalog-center-panel{min-width:0;overflow:hidden}.catalog-product-cards{display:grid;gap:9px;margin-top:16px}.catalog-product-card{border:1px solid #dce6da;border-radius:13px;overflow:hidden;background:white}.catalog-product-card.selected{border-color:#6e9e77;box-shadow:0 0 0 1px #6e9e77}.catalog-product-card-main{display:flex!important;align-items:center;gap:12px;width:100%;padding:14px!important;border:0!important;background:transparent!important;text-align:left;color:#244d35!important;min-height:95px}.catalog-product-card-main>img,.catalog-product-initials{width:58px;height:63px;object-fit:contain;background:#f2f5ec;border-radius:10px;flex-shrink:0}.catalog-product-initials{display:grid;place-items:center;font-size:17px;font-weight:700;color:#73916a}.catalog-product-card-main>span:nth-child(2){flex:1;min-width:0}.catalog-product-card-main strong,.catalog-product-card-main small{display:block;overflow-wrap:anywhere}.catalog-product-card-main strong{font-size:15px;line-height:1.4}.catalog-product-card-main small{font-size:11px;line-height:1.6;font-weight:400;color:#82927c;margin-top:3px}.catalog-product-status{display:inline-block;font-size:9px;font-weight:600;color:#5e8056;background:#edf4e7;padding:3px 7px;border-radius:6px;margin-top:7px}.catalog-product-price{margin-left:auto;min-width:85px;flex-shrink:0;text-align:right}.catalog-product-price>b{font-size:18px;letter-spacing:-.4px}.catalog-workspace .catalog-daily-bulk{padding:11px;border:1px solid #e0e8db;border-radius:9px;margin:10px 0}.catalog-daily-bulk summary{font-size:11px;font-weight:700;cursor:pointer}.catalog-daily-bulk strong{font-size:11px;display:block;margin:10px 0}.catalog-right-panel{border:1px solid #d9e4d4;border-radius:16px;background:#fff;padding:22px;min-width:0;margin:0!important;position:sticky;top:14px;max-height:calc(100dvh - 30px);overflow:auto}.catalog-editor-empty{min-height:240px;background:#fafcf7;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.catalog-editor-empty h3{font-size:23px;letter-spacing:-.6px;color:#2c603e}.catalog-editor-empty p{font-size:13px;line-height:1.7;color:#7f9276}.catalog-insumo-detail>.primary-btn,.catalog-insumo-detail>.secondary-btn,.catalog-insumo-detail>.ghost-btn{width:100%;margin-top:12px}.catalog-insumo-detail h3{font-size:23px;line-height:1.3}.catalog-insumo-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 0;border-top:1px solid #e3eadc;border-bottom:1px solid #e3eadc;margin:18px 0}.catalog-insumo-metrics small,.catalog-insumo-metrics strong{display:block}.catalog-insumo-metrics small{font-size:10px;color:#87967f}.catalog-insumo-metrics strong{font-size:22px;color:#2c613e;margin-top:5px}.catalog-editor-backdrop{position:static!important;display:block!important;background:transparent!important;inset:auto!important;padding:0!important;z-index:auto!important;min-width:0}.catalog-product-editor{position:sticky!important;top:14px;width:100%!important;max-width:none!important;max-height:calc(100dvh - 30px)!important;margin:0!important;border:1px solid #d9e4d4;border-radius:16px!important;overflow:auto!important;box-shadow:none!important}.catalog-product-editor .admin-product-modal-head{position:sticky;top:0;z-index:2;padding:18px;background:#eff5e9;display:block}.catalog-product-editor .admin-product-modal-head h3{font-size:23px;letter-spacing:-.5px;margin:4px 0 13px}.catalog-product-editor .admin-product-modal-actions{display:flex;flex-wrap:wrap;gap:6px}.catalog-product-editor .admin-product-modal-actions button{font-size:10px;padding:8px 10px;min-height:38px}.catalog-product-editor .admin-product-modal-actions [data-action=save-product-modal]{flex:1;background:#155f43;color:white}.catalog-product-editor .admin-product-modal-actions [data-action=close-recipe]{margin-left:auto}.catalog-product-editor .admin-product-modal-body{display:block!important}.catalog-product-editor .admin-product-modal-media{padding:16px!important;border:0!important;display:grid!important;grid-template-columns:110px 1fr;gap:10px;align-items:start;background:#fafcf7}.catalog-product-editor .admin-product-photo{width:110px;height:130px;grid-row:1/4}.catalog-product-editor .admin-product-photo img{width:100%;height:100%;object-fit:contain}.catalog-product-editor .admin-modal-note{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:0}.catalog-product-editor .admin-modal-note strong{font-size:24px}.catalog-product-editor .admin-modal-section{padding:18px;border-top:1px solid #e2eadb}.catalog-product-editor .admin-modal-section>h3,.catalog-product-editor .admin-modal-section .split h3{font-size:17px}.catalog-product-editor .form-grid.two,.catalog-product-editor .recipe-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.catalog-product-editor .field{min-width:0}.catalog-product-editor input,.catalog-product-editor select,.catalog-product-editor textarea,.catalog-new-panel input,.catalog-new-panel select{width:100%;min-width:0;min-height:42px;font-size:13px}.catalog-product-editor .field label,.catalog-new-panel .field label{font-size:11px}.catalog-product-editor .recipe-builder .two-wide,.catalog-product-editor .recipe-builder .full{grid-column:1/-1}.catalog-product-editor .recipe-line-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px;border-radius:11px;border:1px solid #dfe8d8;position:relative}.catalog-product-editor .recipe-line-card>div:first-child{grid-column:1/-1;padding-right:25px}.catalog-product-editor .recipe-line-card .recipe-line-cost{grid-column:1/-1;display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #e1e9dc}.catalog-product-editor .recipe-line-card>.danger-btn{position:absolute;top:9px;right:9px;padding:5px;min-width:28px;min-height:28px}.catalog-product-editor .recipe-line-card>div:first-child .chip{font-size:10px}.catalog-product-editor [data-recipe-total-preview]{font-size:10px;max-width:100%;white-space:normal}.catalog-new-panel{padding:20px}.catalog-new-panel .form-grid{grid-template-columns:1fr 1fr;gap:12px}.catalog-new-panel .field.full{grid-column:1/-1}.catalog-new-panel .split h3{margin:0}.catalog-new-panel .catalog-initial-insumos{border-top:1px solid #e0e8d8;margin-top:8px;padding-top:16px}.catalog-initial-insumos h3{font-size:16px!important}.catalog-initial-insumos .split .secondary-btn{font-size:10px;padding:8px}.catalog-initial-line{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:13px;border:1px solid #dce6d7;border-radius:11px;margin:12px 0;position:relative}.catalog-initial-line>.field:first-child{grid-column:1/-1;padding-right:28px}.catalog-initial-line>.ghost-btn{position:absolute;top:9px;right:8px;min-width:28px;padding:2px;font-size:22px}.catalog-initial-line>.field:nth-child(4){grid-column:1/-1}.catalog-cost-preview{display:block;padding:12px;background:#f1f7eb;border-radius:10px;font-size:13px;color:#30673d;margin-top:14px}.catalog-insumos-empty{padding:16px;border:1px dashed #d2dfca;border-radius:10px;font-size:11px}.catalog-workspace-wrap .admin-submenu{flex-wrap:wrap}.catalog-workspace-wrap .view-head{margin-bottom:16px}.catalog-workspace-wrap .catalog-product-filter{margin:13px 0}.catalog-new-panel .product-availability-toggle{flex-wrap:wrap}
@media(max-width:1100px) and (min-width:761px){.catalog-workspace{grid-template-columns:minmax(0,1fr) 390px;gap:12px}.catalog-product-card-main{padding:12px!important;gap:8px}.catalog-product-card-main>img,.catalog-product-initials{width:44px;height:53px}.catalog-product-card-main strong{font-size:13px}.catalog-product-price{min-width:70px}.catalog-product-price>b{font-size:15px}.catalog-center-panel{padding:16px}.catalog-product-price small{font-size:9px}}
@media(max-width:760px){.catalog-workspace{display:block}.catalog-product-cards{gap:9px}.catalog-product-card-main{min-height:90px;padding:13px!important}.catalog-product-card-main>img,.catalog-product-initials{width:48px;height:57px}.catalog-product-card-main strong{font-size:14px}.catalog-product-price>b{font-size:17px}.catalog-product-price{min-width:72px}.catalog-product-card-main small{font-size:10px}.catalog-right-panel{position:static;max-height:none;margin-top:16px!important;padding:18px}.catalog-workspace.has-editor>.catalog-center-panel{visibility:hidden;height:0;overflow:hidden;padding:0;margin:0}.catalog-workspace.has-editor .catalog-editor-backdrop,.catalog-workspace.has-editor .catalog-new-panel{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;background:#fff!important;z-index:1300!important;margin:0!important;border-radius:0!important;overflow:auto!important;max-height:100dvh!important}.catalog-product-editor{position:static!important;top:0;width:100%!important;height:auto;max-height:none!important;border:0!important;border-radius:0!important;overflow:visible!important}.catalog-product-editor .admin-product-modal-head{position:sticky;top:0;padding:17px}.catalog-product-editor .admin-product-modal-head h3{font-size:24px}.catalog-product-editor .admin-product-modal-actions button{min-height:44px;font-size:11px}.catalog-product-editor input,.catalog-product-editor select,.catalog-product-editor textarea,.catalog-new-panel input,.catalog-new-panel select{font-size:16px!important;min-height:45px}.catalog-product-editor .admin-modal-section{padding:18px}.catalog-product-editor .field label,.catalog-new-panel .field label{font-size:11px}.catalog-product-editor .admin-product-modal-media{grid-template-columns:90px minmax(0,1fr);padding:16px!important}.catalog-product-editor .admin-product-photo{width:90px;height:118px}.catalog-new-panel>.split{position:sticky;top:-18px;background:#fff;z-index:3;padding:15px 0;border-bottom:1px solid #e2e9dd}.catalog-product-editor .recipe-line-card>.danger-btn{min-width:38px;min-height:38px}.catalog-initial-line>.ghost-btn{min-width:36px;min-height:36px}.catalog-editor-empty{display:none}.catalog-workspace-wrap .view-head .primary-btn{width:100%}.catalog-workspace-wrap .view-head{gap:12px}.catalog-workspace-wrap .catalog-daily-bulk button{min-height:40px;font-size:10px}.catalog-workspace-wrap .catalog-product-search{min-width:0}}
@media(max-width:380px){.catalog-product-card-main{gap:8px}.catalog-product-card-main>img,.catalog-product-initials{width:40px;height:49px}.catalog-product-price{min-width:63px}.catalog-product-price>b{font-size:15px}.catalog-product-card-main strong{font-size:13px}.catalog-product-price small{font-size:9px}.catalog-product-editor .form-grid.two,.catalog-product-editor .recipe-builder{grid-template-columns:1fr}.catalog-product-editor .field.full,.catalog-product-editor .recipe-builder .two-wide{grid-column:auto}.catalog-new-panel .form-grid{grid-template-columns:1fr}.catalog-new-panel .field.full{grid-column:auto}}
.catalog-product-editor .admin-product-modal-head,.catalog-product-editor .admin-product-modal-head h3{color:#254e35}.catalog-product-editor .admin-product-modal-head .eyebrow{color:#6e8868}.catalog-product-editor .product-availability-card,.catalog-new-panel .product-availability-card{display:block;padding:12px;background:#f8fbf4}.catalog-product-editor .product-availability-copy,.catalog-new-panel .product-availability-copy{margin-bottom:10px}.catalog-product-editor .product-availability-copy span,.catalog-new-panel .product-availability-copy span{font-size:10px;line-height:1.5}.catalog-product-editor .product-availability-controls,.catalog-new-panel .product-availability-controls{display:flex;flex-wrap:wrap;gap:5px;max-width:none}.catalog-product-editor .availability-pill,.catalog-new-panel .availability-pill{font-size:10px;padding:7px 10px;min-height:32px}.catalog-product-editor .availability-divider,.catalog-new-panel .availability-divider{width:100%;height:0;margin:0}.catalog-product-editor .field>small,.catalog-new-panel .field>small{font-size:10px;line-height:1.5;color:#83967a}.catalog-product-editor input[readonly],.catalog-new-panel input[readonly]{background:#f2f6ee;color:#476b40}
.catalog-product-editor .admin-product-modal-media{position:static;top:auto}.catalog-product-editor .admin-product-photo img,.catalog-product-editor .admin-product-photo .photo-placeholder{min-height:0;height:100%;aspect-ratio:auto}.catalog-product-editor .admin-product-modal-actions{align-items:center}

.catalog-product-editor .admin-product-modal-actions>button{width:auto}.catalog-product-editor .admin-product-modal-actions [data-action=toggle-product-menu-visibility],.catalog-product-editor .admin-product-modal-actions [data-action=toggle-product-sold-out]{flex:1 1 calc(50% - 6px)}
