.icon { display: inline-block; width: 19px; height: 19px; flex: 0 0 auto; vertical-align: middle; }
.nav-icon { display: grid; place-items: center; width: 22px !important; height: 22px; }
.nav-icon .icon { width: 18px; height: 18px; }
.stat-icon .icon { width: 21px; height: 21px; }
.button .icon { width: 16px; height: 16px; }
.dish-thumb.placeholder .icon { width: 22px; height: 22px; }
.demo-accounts {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #f6f8f7;
  color: #798481;
  font-size: 11px;
}
.demo-accounts strong { color: var(--ink); }
.brand small {
  display: block;
  color: #9aa5a2;
  font: 600 9px 'DM Sans';
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-top: 2px;
}
.portal-logo { width: 37px; height: 37px; border-radius: 10px; font-size: 15px; }
.restaurant-portal .sidebar nav a.active {
  background: color-mix(in srgb, var(--portal-brand) 11%, white);
  color: var(--portal-brand);
}
.restaurant-portal .sidebar nav a b,
.portal-button { background: var(--portal-brand); color: #fff; }
.restaurant-portal .eyebrow { color: var(--portal-brand); }
.restaurant-portal .eyebrow.light { color: #9ee7d4; }
.restaurant-welcome {
  background: linear-gradient(125deg, #142f2b, color-mix(in srgb, var(--portal-brand) 30%, #173d36));
}
.restaurant-welcome .pulse-orbit { width: 180px; height: 180px; }
.restaurant-welcome .pulse-orbit span { font-size: 23px; }
.storefront-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f1f6f4;
  border-radius: 10px;
  padding: 12px 13px;
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 700;
  color: #37645a;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 17px;
  margin-bottom: 30px;
}
.section-head.inline { margin: 0 0 22px; }
.ranking { display: grid; }
.ranking > div {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}
.ranking > div:last-child { border-bottom: 0; }
.ranking > div > b {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  background: #f2f5f4;
  font-size: 10px;
}
.ranking span { display: grid; }
.ranking strong { font-size: 12px; }
.ranking small { color: var(--muted); font-size: 10px; }
.ranking em { font-style: normal; font-weight: 700; font-size: 11px; }
.empty-state { color: var(--muted); font-size: 13px; }
.compact-orders { grid-template-columns: repeat(3, 1fr); }
.access-card {
  display: flex;
  align-items: center;
  gap: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 15px;
  margin-top: 20px;
}
.access-card .avatar {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #17322e;
  color: #fff;
  font-size: 11px;
}
.access-card > div { display: grid; flex: 1; }
.access-card small { color: var(--muted); font-size: 11px; }
.form-grid label > small { color: var(--muted); font-weight: 400; }
.security-form { max-width: 520px; margin-top: 24px; }
.security-list { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 12px; color: #467164; font-size: 13px; }
.security-panel { margin-top: 22px; }
.security-panel h2 { margin: 7px 0 22px; }
.menu-builder { display: grid; grid-template-columns: minmax(0,1fr) 410px; gap: 25px; align-items: start; }
.dish-form-panel { position: sticky; top: 130px; }
.dish-form-panel h2 { margin: 7px 0 22px; }
.rich-menu-list .dish-thumb { width: 58px; height: 58px; border-radius: 10px; object-fit: cover; flex: 0 0 auto; }
.rich-menu-list .dish-thumb.placeholder { display: grid; place-items: center; background: #f0f4f2; color: #89938f; }
.image-preview { width: 100%; height: 180px; border-radius: 10px; object-fit: cover; margin-bottom: 4px; }
.allergen-line { color: #a76d28 !important; margin-top: 3px; }
.choice-field { border: 0; padding: 0; margin: 0; }
.choice-field legend { font-size: 13px; font-weight: 700; margin-bottom: 9px; }
.chip-options { display: flex; flex-wrap: wrap; gap: 7px; max-height: 160px; overflow: auto; }
.chip-options label { display: block; }
.chip-options input { position: absolute; opacity: 0; pointer-events: none; }
.chip-options span { display: block; border: 1px solid var(--line); border-radius: 30px; padding: 7px 10px; color: #697572; font-size: 10px; cursor: pointer; }
.chip-options input:checked + span { background: color-mix(in srgb,var(--portal-brand) 12%,white); border-color: var(--portal-brand); color: var(--portal-brand); font-weight: 700; }
.management-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 24px; }
.management-grid h3 { margin: 7px 0 15px; }
.tag-list { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.tag-list span { background: #f2f5f4; border-radius: 30px; padding: 6px 10px; font-size: 11px; }
.inline-create { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.management-panel{margin-top:24px;padding:0;overflow:hidden}.management-heading{padding:24px 26px 20px;border-bottom:1px solid var(--line)}.management-heading h2{margin:6px 0}.management-heading p{margin:0;color:var(--muted)}.management-columns{display:grid;grid-template-columns:1fr 1fr}.manage-group{padding:24px 26px;min-width:0}.manage-group+.manage-group{border-left:1px solid var(--line)}.manage-group-head{display:grid;gap:15px;margin-bottom:16px}.manage-group-head h3{margin:0 0 3px}.manage-group-head p{margin:0;color:var(--muted);font-size:12px}.compact-create input{min-height:43px}.management-list{display:grid;gap:9px}.management-row{padding:11px;border:1px solid var(--line);border-radius:12px;background:#fafcfb}.management-edit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.management-edit label{display:block}.management-edit input{width:100%;background:#fff}.management-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 3px 0;color:var(--muted);font-size:11px}.management-meta form{margin:0}.text-danger{border:0;background:transparent;padding:3px;color:#b83c31;font-size:11px;font-weight:800}.text-danger:disabled{color:#aab2b0;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.small-copy { font-size: 12px; }
.empty-state-card { border: 1px dashed #d9dfdd; border-radius: 12px; padding: 30px; color: var(--muted); text-align: center; font-size: 13px; }
.promotion-layout { display: grid; grid-template-columns: minmax(0,1fr) 410px; gap: 25px; align-items: start; }
.promotion-list { display: grid; gap: 10px; }
.promotion-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #fff; border: 1px solid var(--line); border-radius: 13px; padding: 18px; }
.promotion-card h3 { margin: 9px 0 3px; font-size: 16px; }
.promotion-card p { margin: 0 0 5px; color: #66736f; font-size: 12px; }
.promotion-card small { color: var(--muted); }
.date-fields,.buy-pay-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.button:disabled { opacity: .45; cursor: not-allowed; }
[hidden] { display: none !important; }
.food-card.with-image { padding: 0; overflow: hidden; }
.food-image { width: 100%; height: 190px; object-fit: cover; }
.food-card-content { padding: 20px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; flex: 1; }
.promo-badge { display: inline-flex; padding: 4px 8px; border-radius: 30px; background: #fff0e8; color: #df5728; font-size: 9px; font-weight: 800; margin-bottom: 8px; }
.store-allergens { display: block; color: #a17238; font-size: 9px; margin-top: 8px; line-height: 1.4; }
.store-price { display: grid; justify-items: end; white-space: nowrap; }
.store-price del { color: #9ca4a1; font-size: 10px; }
.store-price strong { font-size: 14px; }
.food-card.has-promotion{position:relative;border-color:color-mix(in srgb,var(--restaurant-brand) 44%,#e9e6df);background:linear-gradient(145deg,color-mix(in srgb,var(--restaurant-brand) 7%,#fff),#fff 58%);box-shadow:inset 4px 0 0 var(--restaurant-brand),0 10px 28px rgba(35,55,49,.08)}
.food-card.has-promotion:hover{border-color:color-mix(in srgb,var(--restaurant-brand) 65%,#e9e6df);box-shadow:inset 4px 0 0 var(--restaurant-brand),0 15px 35px rgba(35,55,49,.13);transform:translateY(-2px)}
.promotion-banner{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 8px;margin:-3px 0 2px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--restaurant-brand) 25%,#fff);border-radius:10px;background:color-mix(in srgb,var(--restaurant-brand) 11%,#fff);color:color-mix(in srgb,var(--restaurant-brand) 72%,#172724)}
.promotion-banner>span{grid-row:1/3;align-self:stretch;display:grid;place-items:center;padding:0 7px;border-radius:7px;background:var(--restaurant-brand);color:var(--restaurant-on-brand,#fff);font-size:8px;font-weight:900;letter-spacing:.1em}
.promotion-banner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.promotion-banner small{font-size:9px;font-weight:750}
.store-price.promotion-price del{font-size:11px;text-decoration-thickness:2px;text-decoration-color:#bf3d32}
.store-price.promotion-price strong{color:var(--restaurant-brand);font-size:17px;font-weight:900}
.store-price.promotion-price small{color:#6f7976;font-size:8px;font-weight:750}
.cart-summary>div>span{display:grid;gap:3px}
.cart-promotion{color:var(--restaurant-brand);font-size:9px;font-weight:800}

@supports not (color: color-mix(in srgb, red, white)) {
  .restaurant-portal .sidebar nav a.active { background: #f4f1ed; }
  .restaurant-welcome { background: linear-gradient(125deg, #142f2b, #23584e); }
  .food-card.has-promotion{border-color:var(--restaurant-brand);background:#fffaf6}
  .promotion-banner{border-color:#f0d5c4;background:#fff0e8;color:#8b3f22}
}

@media (max-width: 1050px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .compact-orders { grid-template-columns: 1fr 1fr; }
  .menu-builder,.promotion-layout { grid-template-columns: 1fr; }
  .dish-form-panel { position: static; }
}

@media (max-width: 760px) {
  .compact-orders { grid-template-columns: 1fr; }
  .restaurant-welcome .pulse-orbit { display: none; }
  .management-grid { grid-template-columns: 1fr; }
  .management-columns{grid-template-columns:1fr}.manage-group+.manage-group{border-left:0;border-top:1px solid var(--line)}
  .inline-create { grid-template-columns: 1fr; }
  .food-image { height: 165px; }
  .promotion-banner{grid-template-columns:auto minmax(0,1fr);padding:7px 8px}.promotion-banner>span{padding-inline:5px}.promotion-banner strong{font-size:10px}.promotion-banner small{font-size:8px}
}
body,h1,h2,h3,.brand{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.table-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:32px;align-items:end;margin-bottom:18px}.table-intro h2{margin:7px 0 8px}.table-intro p{color:var(--muted);margin:0;max-width:680px}.table-create{display:grid;grid-template-columns:1fr 1fr;gap:12px}.table-create .button{grid-column:1/-1}.security-hint{padding:14px 18px;margin-bottom:18px;border:1px solid #bfe7da;border-radius:12px;background:#effbf7;color:#245c4c;font-size:14px}.table-qr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.table-qr-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.table-qr-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:17px}.table-qr-card h3{font-size:21px;margin:3px 0}.table-qr-card header p{margin:0;color:var(--muted)}.table-state{font-size:12px;font-weight:800;color:#8b9693}.is-open .table-state{color:#16865e}.table-enabled{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:#eef2f1;color:#65716e}.table-qr-body{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;align-items:center}.table-qr-body>img{display:block;width:190px;height:190px;border:1px solid var(--line);border-radius:12px}.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}.table-actions form{margin:0}.fixed-table{padding:12px 14px;border-radius:10px;background:#eef8f4;color:#245c4c}.login-body{min-height:100vh;display:grid;place-items:center}.login-body .login-shell{width:min(100% - 32px,620px);margin:auto}.login-body .login-card{background:#fff;padding:38px;border-radius:20px;box-shadow:var(--shadow)}.login-body .login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.login-body .login-card h1{margin:8px 0 12px}.login-body .login-card p{color:var(--muted);line-height:1.6}
@media(max-width:960px){.table-intro,.table-qr-grid{grid-template-columns:1fr}.table-qr-body{grid-template-columns:160px minmax(0,1fr)}.table-qr-body>img{width:160px;height:160px}}
@media(max-width:600px){.table-create,.table-qr-body{grid-template-columns:1fr}.table-qr-body>img{width:190px;height:190px;margin:auto}.table-actions{align-items:stretch}.table-actions>*{flex:1}.table-actions .button,.table-actions .tiny-button{width:100%}}

/* SaaS control center and complete restaurant operations */
.saas-welcome{background:linear-gradient(125deg,#142f2b,#244e46)}
.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.health-grid>div{display:grid;gap:4px;padding:16px;border-radius:12px;background:#f4f7f6}.health-grid strong{font-size:25px;color:#173b34}.health-grid span{font-size:11px;color:var(--muted)}.health-grid .warn{background:#fff5eb}.health-grid .warn strong{color:#c4631c}
.metric-list{display:grid;margin-top:18px}.metric-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.metric-list>div:last-child{border:0}.metric-list span{color:var(--muted)}
.filter-bar{display:grid;grid-template-columns:minmax(240px,1fr) 210px auto;gap:10px;margin-bottom:24px}.filter-bar input,.filter-bar select{width:100%}.table-sub{display:block;color:var(--muted);font-size:10px;margin-top:4px}
.badge.trial{background:#eef4ff;color:#3f68a9}.badge.past_due{background:#fff0df;color:#b76019}.badge.cancelled{background:#f1f1f1;color:#747b79}
.usage-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:-4px 0 24px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.usage-strip>div{display:grid;gap:5px;padding:17px 20px;border-right:1px solid var(--line)}.usage-strip>div:last-child{border:0}.usage-strip strong{font-size:18px}.usage-strip span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.restaurant-usage{margin-top:-6px}
.audit-list{display:grid;margin-top:12px}.audit-list>div{display:grid;gap:2px;padding:11px 0;border-bottom:1px solid var(--line)}.audit-list strong{font-size:12px}.audit-list span,.audit-list small{font-size:10px;color:var(--muted)}
.live.is-offline{color:#a34f45;background:#fff1ee}.live.is-offline i{background:#c45d50;box-shadow:none}
.team-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.team-card{display:grid;grid-template-columns:auto 1fr;gap:13px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.team-card>.avatar{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#173b34;color:#fff;font-size:11px}.team-card>div{display:grid;gap:4px}.team-card h3{margin:2px 0 0;font-size:15px}.team-card p,.team-card small{margin:0;color:var(--muted);font-size:10px}.team-card form{grid-column:2}.switch-field{display:flex!important;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:10px}.switch-field input{width:auto}.switch-field span{font-weight:700}
.billing-hero{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;margin-bottom:24px;background:linear-gradient(130deg,#fff,#f2f8f6)}.billing-hero h2{font-size:34px;margin:5px 0}.billing-hero>div>strong{font-size:27px}.billing-hero>div>strong small{font-size:12px;color:var(--muted)}.plan-usage{display:grid;gap:17px}.plan-usage>div{display:grid;gap:6px}.plan-usage span{font-size:11px;color:var(--muted)}.plan-usage i{display:block;height:7px;border-radius:10px;background:#dfe9e6;overflow:hidden}.plan-usage i b{display:block;height:100%;background:var(--portal-brand);border-radius:10px}
@media(max-width:1050px){.team-layout,.billing-hero{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.filter-bar{grid-template-columns:1fr}.usage-strip{grid-template-columns:1fr 1fr}.usage-strip>div:nth-child(2){border-right:0}.usage-strip>div{border-bottom:1px solid var(--line)}.usage-strip>div:nth-child(3),.usage-strip>div:nth-child(4){border-bottom:0}}

/* B2B customer relationship management */
.customer-stage,.customer-number{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:#eef3f1;color:#52645f;font-size:10px;font-weight:800}.customer-stage.lead{background:#eef4ff;color:#4267a4}.customer-stage.onboarding{background:#fff4df;color:#a76618}.customer-stage.customer{background:#eaf8f2;color:#187251}.customer-stage.at_risk{background:#fff0ed;color:#b4473c}.customer-stage.churned{background:#f0f0f0;color:#777}.tag-row{display:flex;flex-wrap:wrap;gap:4px}.tag-row span{padding:4px 7px;border-radius:999px;background:#f0f4f3;color:#60706c;font-size:9px;font-weight:700}.customer-hero{align-items:center}.customer-actions{display:flex;flex-wrap:wrap;gap:9px}.crm-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start}.timeline{display:grid}.timeline article{display:grid;grid-template-columns:38px 1fr;gap:13px;position:relative;padding-bottom:20px}.timeline article:after{content:"";position:absolute;left:18px;top:38px;bottom:0;width:1px;background:var(--line)}.timeline article:last-child:after{display:none}.timeline-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#173b34;color:#fff;font-size:12px;z-index:1}.timeline article>div{padding:2px 0 16px;border-bottom:1px solid var(--line)}.timeline h3{margin:4px 0;font-size:15px}.timeline p{margin:0 0 7px;color:#63706c;font-size:12px;line-height:1.55}.timeline small,.timeline article>div>span{color:var(--muted);font-size:10px}.task-list{display:grid;gap:9px}.task-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:15px;background:#fff;border:1px solid var(--line);border-radius:12px}.task-row form{margin:0}.task-row button{display:grid;place-items:center;width:24px;height:24px;border:2px solid #b8c4c0;border-radius:7px;background:#fff;color:#fff}.task-row div{display:grid;gap:4px}.task-row small{color:var(--muted)}.task-row.is-done{opacity:.6}.task-row.is-done strong{text-decoration:line-through}.task-row.is-done button{background:#208363;border-color:#208363}
@media(max-width:1050px){.crm-layout{grid-template-columns:1fr}}

/* SaaS revenue and hospitality analytics */
.analytics-note{padding:14px 17px;margin-bottom:18px;border:1px solid #c9e2da;border-radius:12px;background:#f1faf7;color:#315f53;font-size:12px;line-height:1.55}.analytics-note.compact-note{margin:18px 0 0}.revenue-chart{display:grid;gap:12px;margin-top:18px}.revenue-chart>div{display:grid;grid-template-columns:52px minmax(0,1fr) 90px;align-items:center;gap:10px;font-size:10px}.revenue-chart>div>strong{text-align:right}.revenue-bar{display:flex;height:13px;border-radius:999px;background:#edf2f0;overflow:hidden}.revenue-bar i{height:100%}.revenue-bar .base,.chart-legend .base{background:#287963}.revenue-bar .upsell,.chart-legend .upsell{background:#f28b3c}.chart-legend{display:flex;gap:16px;margin-top:18px;color:var(--muted);font-size:10px}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:9px;height:9px;border-radius:3px}.metric-definitions{margin-top:24px}.metric-definitions>div{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-definitions p{display:grid;gap:6px;margin:0;padding:14px;border-radius:11px;background:#f6f8f7}.metric-definitions strong{font-size:12px}.metric-definitions span{color:var(--muted);font-size:10px;line-height:1.5}.revenue-list{display:grid;gap:9px}.revenue-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.revenue-entry>div{display:grid;gap:3px}.revenue-entry small{color:var(--muted);font-size:10px}.revenue-entry form{margin:0}.revenue-type{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800}.revenue-type.subscription{background:#eaf6f2;color:#24705b}.revenue-type.upsell{background:#fff1e6;color:#b76121}.revenue-entry.is-refunded{opacity:.5}.revenue-entry.is-refunded b{text-decoration:line-through}
@media(max-width:1050px){.metric-definitions>div{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.metric-definitions>div{grid-template-columns:1fr}.revenue-entry{grid-template-columns:auto 1fr}.revenue-entry>b,.revenue-entry>form{grid-column:2}.revenue-chart>div{grid-template-columns:42px 1fr}.revenue-chart>div>strong{grid-column:2}}

/* Consistent dashboard periods and safe product editing */
.period-switch{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:0 0 12px}.period-switch>span{margin-right:6px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.period-switch a{padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#697572;font-size:11px;font-weight:700}.period-switch a.active,.period-switch a[aria-current="page"]{border-color:#172724;background:#172724;color:#fff;box-shadow:0 4px 12px rgba(23,39,36,.16)}.product-editor{margin-top:24px}.product-edit-list{display:grid;gap:10px}.product-edit-row{display:grid;grid-template-columns:minmax(170px,1fr) 140px minmax(220px,1.4fr) auto;gap:10px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fafcfb}.product-edit-row label{display:grid;gap:6px;font-size:10px}.product-edit-row input{width:100%}.product-edit-row .tiny-button{min-height:43px}.product-edit-row input:invalid{border-color:#d36d62;background:#fff7f5}
@media(max-width:900px){.product-edit-row{grid-template-columns:1fr 150px}.product-edit-row .product-description{grid-column:1/-1}.product-edit-row .tiny-button{grid-column:2}}
@media(max-width:600px){.period-switch{justify-content:flex-start;overflow:auto}.product-edit-row{grid-template-columns:1fr}.product-edit-row .product-description,.product-edit-row .tiny-button{grid-column:auto}}

/* Editable subscription plans */
.plan-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.plan-admin-card{display:grid;gap:20px}.plan-admin-card .panel-head{margin:0}.plan-admin-card .panel-head h2{margin:5px 0 0}.plan-switches{display:flex;flex-wrap:wrap;gap:9px;padding:15px;border:1px solid var(--line);border-radius:12px}.plan-switches legend{padding:0 7px;color:var(--muted);font-size:10px;font-weight:800}.plan-switches label{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;background:#f3f6f5;font-size:10px;font-weight:750}.plan-switches input{width:auto}.plan-visibility{border:0;padding:0}.plan-visibility label{flex:1}.muted{color:var(--muted);line-height:1.6}
@media(max-width:1100px){.plan-admin-grid{grid-template-columns:1fr}}

/* Secure logout and subscription self-service */
.logout-form{margin:0}.logout-form .profile{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}.subscription-self-service{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:22px;align-items:start}.plan-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.plan-choice{position:relative;display:grid!important;gap:6px;padding:15px!important;border:1px solid var(--line);border-radius:11px;background:#fafcfb;cursor:pointer}.plan-choice input{position:absolute;top:13px;right:13px;width:auto}.plan-choice strong{font-size:15px}.plan-choice span{color:var(--muted);font-size:10px;line-height:1.5}.plan-choice b{font-size:12px;color:#245e50}.danger-zone{border-color:#efcfca;background:#fffafa}.danger-zone h3{color:#913f36}.danger-zone p{color:#6f5a57;line-height:1.6}.danger-zone .button-danger{width:100%;border:1px solid #bd5549;background:#fff;color:#9a4037}.confirmation-row{display:flex!important;align-items:flex-start;gap:9px;padding:12px;border-radius:9px;background:#fff0ee;color:#75423c;font-size:11px;line-height:1.5}.confirmation-row input{width:auto;margin-top:2px}.planned-feature{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:8px;background:#f0f1f1!important;color:#686f6d!important}.planned-feature:after{content:'GEPLANT';margin-left:auto;padding:3px 6px;border-radius:999px;background:#dfe2e1;color:#515957;font-size:8px;font-weight:900;letter-spacing:.06em}
.menu-qr-grid{grid-template-columns:minmax(0,760px);justify-content:center}.menu-qr-card{border-color:#cfe4dd}.menu-qr-card .table-qr-body{grid-template-columns:260px minmax(0,1fr);align-items:center}.menu-qr-card .table-qr-body>img{width:240px;height:240px}.menu-qr-card .muted{font-size:12px;line-height:1.6;margin:15px 0}
@media(max-width:600px){.menu-qr-card .table-qr-body{grid-template-columns:1fr}.menu-qr-card .table-qr-body>img{width:220px;height:220px;margin:auto}}
@media(max-width:950px){.subscription-self-service{grid-template-columns:1fr}}@media(max-width:650px){.plan-choice-grid{grid-template-columns:1fr}}

/* Mobile admin and restaurant portals */
.sidebar-close,.sidebar-backdrop{display:none}
.contract-confirmation-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:16px 18px;border:1px solid #bfe1d5;border-radius:13px;background:#effaf6}.contract-confirmation-notice>div{display:grid;gap:4px}.contract-confirmation-notice strong{font-size:13px}.contract-confirmation-notice span{color:#567068;font-size:11px;line-height:1.5}.contract-download{display:block;width:max-content;margin-top:15px;color:var(--portal-brand);font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body.sidebar-open{overflow:hidden}
  .sidebar{width:min(88vw,320px);padding:22px 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;z-index:80}
  .sidebar>.brand{min-width:0;margin:0 44px 28px 0;padding:0 6px}
  .sidebar>.brand>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sidebar nav{gap:4px}
  .sidebar nav a{min-height:47px;padding:12px;border-radius:10px}
  .sidebar-close{position:absolute;top:18px;right:14px;z-index:2;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:#52615d;font-size:26px;line-height:1}
  .sidebar-backdrop{position:fixed;z-index:70;inset:0;display:block;border:0;background:rgba(8,25,21,.45);opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(2px)}
  body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .sidebar-bottom{padding-top:30px}
  .help-card{margin-bottom:12px}
  .main{min-width:0}
  .topbar{height:74px;padding:0 13px;gap:8px}
  .menu-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin:0;padding:0;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}
  .menu-toggle .icon{width:21px;height:21px}
  .topbar>div:first-of-type{min-width:0;margin-right:auto}
  .topbar h1{max-width:52vw;margin:0;overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}
  .top-actions{gap:7px}
  .top-actions .button{flex:0 0 42px;width:42px;min-height:42px;padding:0!important;font-size:0!important;border-radius:10px}
  .top-actions .button .icon{width:18px;height:18px}
  .content{width:100%;padding:18px 14px calc(42px + env(safe-area-inset-bottom))}
  .alert{margin-bottom:16px;font-size:13px;line-height:1.5}
  .contract-confirmation-notice{align-items:stretch;flex-direction:column;padding:15px}.contract-confirmation-notice .button{width:100%}
  .panel{min-width:0;padding:19px 16px;border-radius:14px}
  .panel-head{align-items:flex-start;gap:12px;margin-bottom:19px}
  .panel-head h2{font-size:21px}
  .welcome-card{min-height:0;padding:23px 20px;border-radius:15px}
  .welcome-card h2{font-size:25px;line-height:1.15}
  .welcome-card p{font-size:13px;line-height:1.55}
  .welcome-card .button{width:100%}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 27px}
  .stat{min-width:0;padding:14px 12px;border-radius:12px}
  .stat div{min-width:0}
  .stat small{font-size:9px;line-height:1.35}
  .stat strong{overflow-wrap:anywhere;font-size:20px;line-height:1.2}
  .stat em{font-size:9px;line-height:1.35}
  .section-head{align-items:flex-start;gap:12px;margin:22px 0 13px}
  .section-head>div{min-width:0}
  .section-head h2{font-size:19px}
  .section-head p{font-size:12px;line-height:1.5}
  .section-head .button{width:100%}
  .restaurant-grid{gap:10px}
  .restaurant-card{min-width:0;padding:15px 13px}
  .restaurant-info p{white-space:normal;overflow-wrap:anywhere}
  .restaurant-info>div{flex-wrap:wrap;gap:6px 12px}
  .filter-bar{gap:8px;margin-bottom:17px}
  .filter-bar .button{width:100%}
  .table-wrap{width:100%;max-width:100%;margin-right:0;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;box-shadow:inset -18px 0 18px -20px rgba(18,35,33,.45)}
  .table-wrap table{min-width:720px}
  .table-wrap th,.table-wrap td{padding:13px 14px;white-space:nowrap}
  .table-wrap th:first-child{position:sticky;z-index:2;left:0;background:#fafbfb}
  .table-wrap td:first-child{position:sticky;z-index:1;left:0;background:#fff}
  .tabs{gap:22px;margin:18px -14px;padding:0 14px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{flex:0 0 auto;white-space:nowrap}
  .detail-hero{flex-direction:column;align-items:stretch;padding:18px 16px}
  .detail-identity{min-width:0;align-items:flex-start;gap:12px}
  .detail-identity>div{min-width:0}
  .detail-identity p{overflow-wrap:anywhere}
  .detail-hero>.button{width:100%;min-height:44px;padding:0 14px!important;font-size:12px!important}
  .detail-hero>.button::after{display:none}
  .restaurant-logo.large{width:50px;height:50px;font-size:19px}
  .usage-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 20px}
  .usage-strip>div{min-width:0;padding:14px 13px}
  .usage-strip strong{overflow-wrap:anywhere;font-size:16px}
  .usage-strip span{font-size:8px;line-height:1.35}
  .form-grid{gap:15px}
  .form-actions{flex-direction:column-reverse;align-items:stretch}
  .form-actions .button{width:100%}
  .tiny-button,.text-danger{min-height:40px;padding:8px 11px}
  .split-layout,.crm-layout,.team-layout,.subscription-self-service{gap:15px}
  .health-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .health-grid>div{min-width:0;padding:13px}
  .health-grid strong{overflow-wrap:anywhere;font-size:21px}
  .metric-list>div{gap:12px}
  .metric-list strong{text-align:right;overflow-wrap:anywhere}
  .plan-admin-grid{gap:14px}
  .plan-admin-card{gap:15px}
  .plan-switches{padding:12px;gap:7px}
  .plan-switches label{flex:1 1 140px;min-width:0}
  .plan-visibility{display:grid;grid-template-columns:1fr}
  .customer-actions{width:100%}
  .customer-actions .button{flex:1 1 100%}
  .timeline article{grid-template-columns:34px 1fr;gap:10px}
  .timeline-icon{width:32px;height:32px}
  .timeline article:after{left:16px;top:34px}
  .task-row{padding:13px}
  .revenue-entry{padding:13px}
  .revenue-chart{overflow:hidden}
  .chart-legend{flex-wrap:wrap}
  .period-switch{max-width:100%;margin-bottom:10px;padding-bottom:2px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
  .period-switch::-webkit-scrollbar{display:none}
  .period-switch>*{flex:0 0 auto}
  .dashboard-grid{gap:12px}
  .dashboard-grid .panel{overflow:hidden}
  .ranking>div{grid-template-columns:25px minmax(0,1fr) auto;gap:8px}
  .compact-orders,.orders-board{gap:10px}
  .order-card{padding:16px}
  .menu-builder,.promotion-layout{gap:16px}
  .menu-admin-list>div{align-items:flex-start;flex-wrap:wrap;padding:12px}
  .menu-admin-list>div>div{min-width:150px}
  .menu-admin-list>div>form{margin-left:auto}
  .product-editor{margin-top:16px}
  .management-panel{margin-top:16px}
  .management-heading,.manage-group{padding:19px 16px}
  .management-edit{grid-template-columns:minmax(0,1fr) auto}
  .promotion-card{align-items:stretch;flex-direction:column;gap:13px;padding:15px}
  .promotion-card form,.promotion-card .tiny-button{width:100%}
  .team-grid{gap:10px}
  .team-card{grid-template-columns:auto minmax(0,1fr);padding:15px}
  .team-card p{overflow-wrap:anywhere}
  .team-card form,.team-card form .tiny-button{width:100%}
  .billing-hero{gap:22px;margin-bottom:16px}
  .billing-hero h2{font-size:28px}
  .billing-hero>div>strong{font-size:23px}
  .billing-hero>div>strong small{display:block;margin-top:5px;line-height:1.4}
  .plan-choice-grid{margin:14px 0}
  .table-intro{gap:18px;padding:18px 16px}
  .table-intro>.button{width:100%}
  .table-create{gap:10px}
  .table-qr-card{padding:16px}
  .table-qr-card>header{gap:10px}
  .table-qr-card h3{font-size:19px}
  .table-qr-body{gap:15px}
  .copy-field{min-width:0}
  .copy-field input{width:0;min-width:0}
  .table-actions{flex-direction:column}
  .table-actions>*{width:100%}
  .security-panel{margin-top:15px}
}

@media(max-width:480px){
  .topbar h1{max-width:48vw;font-size:17px}
  .content{padding-right:12px;padding-left:12px}
  .panel{padding:17px 14px}
  .welcome-card{padding:21px 17px}
  .stat{padding:13px 10px}
  .stat strong{font-size:18px}
  .health-grid>div{padding:12px 10px}
  .health-grid strong{font-size:19px}
  .section-head{flex-direction:column}
  .section-head>a{align-self:flex-start}
  .metric-list>div{align-items:flex-start;flex-direction:column;gap:4px}
  .metric-list strong{text-align:left}
  .panel-head{flex-direction:column}
  .date-fields,.buy-pay-fields{grid-template-columns:1fr}
  .management-edit{grid-template-columns:1fr}
  .management-edit .tiny-button{width:100%}
  .management-meta{align-items:flex-start;flex-direction:column}
  .team-card{grid-template-columns:38px minmax(0,1fr);gap:10px}
  .team-card>.avatar{width:38px;height:38px}
  .table-state{font-size:10px}
  .table-enabled{font-size:9px}
  .menu-qr-card .table-qr-body>img{width:min(210px,100%);height:auto}
  .revenue-chart>div{grid-template-columns:38px minmax(0,1fr)}
}

/* Feedback, custom roles, focused team workspaces and image cropping */
.badge,.customer-stage,.customer-number,.tag-row span{align-items:center;justify-content:center;text-align:center;line-height:1.2}
.plan-admin-card .panel-head>.badge{align-self:flex-start;flex:0 0 auto;min-height:24px}
.management-panel{margin:0 0 24px}
.team-member-edit{display:grid;grid-template-columns:minmax(100px,1fr) minmax(110px,1fr) auto;gap:7px;grid-column:1/-1!important}.team-member-edit input,.team-member-edit select{min-width:0;padding:8px;font-size:10px}.team-member-edit+.logout-form{grid-column:2}
.role-management{margin-top:28px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.role-card{display:grid;align-content:start;gap:12px}.role-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;border:0;padding:0}.role-permissions legend{margin-bottom:8px;font-size:11px;font-weight:800}.role-permissions label{display:flex;align-items:flex-start;gap:7px;padding:9px;border-radius:9px;background:#f3f7f5;font-size:10px;line-height:1.35}.role-permissions input{width:auto;margin-top:1px}.role-create{border-style:dashed;background:#fbfdfc}
.feedback-button{position:relative;z-index:2;margin-top:5px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--portal-brand) 35%,#d8dfdc);border-radius:8px;background:#fff;color:var(--portal-brand);font:700 10px inherit;cursor:pointer}.feedback-button:hover{background:color-mix(in srgb,var(--portal-brand) 7%,white)}
dialog.feedback-dialog,dialog.crop-dialog{width:min(92vw,620px);max-height:90vh;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 30px 90px rgba(10,30,24,.28);overflow:auto}dialog::backdrop{background:rgba(8,25,21,.58);backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-head h2{margin:5px 0 18px}.dialog-head>button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:22px}.feedback-dialog form{margin:0}
.feedback-inbox{display:grid;gap:13px}.feedback-item{display:grid;gap:9px}.feedback-item.status-new{border-left:4px solid var(--orange)}.feedback-item h3,.feedback-item p{margin:0}.feedback-item p{color:#4e5f5a;line-height:1.65}.feedback-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}.feedback-meta time{margin-left:auto}.feedback-status{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.feedback-status select{width:auto;min-width:120px}
.crop-dialog{width:min(94vw,840px)!important}.crop-dialog>p{color:var(--muted);font-size:12px}.crop-stage{overflow:hidden;border-radius:12px;background:#e8eeeb;touch-action:none}.crop-stage canvas{display:block;width:100%;height:auto;cursor:grab;touch-action:none}.crop-stage canvas:active{cursor:grabbing}.crop-dialog>label{display:grid;gap:7px;margin-top:16px;font-size:11px;font-weight:700}.crop-dialog input[type=range]{padding:0}.crop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.crop-format-progress{display:grid;grid-template-columns:1fr 36px 1fr;align-items:center;gap:8px;margin:18px 0 12px}.crop-format-progress span{display:grid;place-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:#f7f9f8;color:var(--muted);font-size:12px;font-weight:700;text-align:center}.crop-format-progress span.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.crop-format-progress span.is-complete{border-color:#8db5a4;background:#e8f4ef;color:#173f34}.crop-format-progress i{display:grid;place-items:center;color:var(--muted);font-style:normal}.crop-stage canvas:focus-visible{outline:3px solid #e8a249;outline-offset:-3px}
.food-picture{display:block;width:100%;height:190px;overflow:hidden}.food-picture .food-image{display:block;width:100%;height:100%;object-fit:cover}
.service-board .order-card,.kitchen-board .order-card{align-self:start}.kitchen-board .order-card li{grid-template-columns:32px 1fr}.kitchen-board .order-card li strong{display:none}
.allergen-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f3f8f5,#fff8f2);color:#172724}.allergen-gate-card{width:min(720px,100%);padding:clamp(25px,5vw,54px);border:1px solid #e4e9e6;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(17,45,38,.12)}.allergen-restaurant{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:13px;margin-bottom:34px}.allergen-restaurant>img,.allergen-restaurant>span{grid-row:1/3;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;object-fit:contain;background:var(--restaurant-brand);color:#fff;font:800 22px Manrope}.allergen-restaurant strong{align-self:end}.allergen-restaurant small{color:var(--muted)}.allergen-gate-card h1{font-size:clamp(31px,5vw,50px);line-height:1.08;letter-spacing:-.045em;margin:12px 0 15px}.allergen-gate-card>p{color:var(--muted);line-height:1.65}.allergen-gate-form{display:grid;gap:20px;margin-top:28px}.allergen-gate-form fieldset{border:0;padding:0;margin:0}.allergen-gate-form legend{margin-bottom:12px;font-weight:800}.allergen-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.allergen-select-grid label{display:block}.allergen-select-grid input{position:absolute;opacity:0;pointer-events:none}.allergen-select-grid span{min-height:48px;display:flex;align-items:center;padding:11px 14px;border:1px solid #dfe6e2;border-radius:11px;background:#fbfcfb;font-weight:700;transition:.18s}.allergen-select-grid input:checked+span{border-color:var(--restaurant-brand);background:color-mix(in srgb,var(--restaurant-brand) 10%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--restaurant-brand) 18%,transparent)}.allergen-select-grid input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--restaurant-brand) 28%,transparent)}.allergen-gate-form>small{text-align:center;color:var(--muted)}.allergen-empty{padding:17px;border-radius:12px;background:#eff7f3;color:#49655d}.allergen-warning{font-size:11px;margin:20px 0 0!important;padding-top:18px;border-top:1px solid #edf0ee}.allergen-filter-note{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 20px;background:#fff5ec;color:#76502e;font-size:12px}.allergen-filter-note a{font-weight:800;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.allergen-gate{padding:0}.allergen-gate-card{min-height:100vh;border:0;border-radius:0;padding:28px 20px}.allergen-select-grid{grid-template-columns:1fr}.allergen-filter-note{align-items:flex-start;justify-content:space-between}}
.login-divider{display:flex;align-items:center;gap:10px;margin:22px 0 17px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--line)}.login-card{max-height:calc(100vh - 36px);overflow:auto}
@media(max-width:900px){.role-grid{grid-template-columns:1fr}}
@media(max-width:600px){.team-member-edit{grid-template-columns:1fr}.role-permissions{grid-template-columns:1fr}.feedback-meta{align-items:flex-start;flex-wrap:wrap}.feedback-meta time{width:100%;margin:0}.feedback-status,.crop-actions{flex-direction:column}.feedback-status>*{width:100%!important}}
.plan-choice .feedback-button{display:none}.portal-feedback-fab{position:fixed;right:0;top:50%;z-index:24;transform:translateY(-50%);padding:14px 9px;border:0;border-radius:12px 0 0 12px;background:var(--portal-brand);color:#fff;font-weight:800;writing-mode:vertical-rl;box-shadow:0 8px 25px rgba(15,40,34,.2)}.manual-order{position:relative}.manual-order summary{list-style:none}.manual-order>form{position:absolute;right:0;top:52px;z-index:18;width:min(540px,90vw);max-height:75vh;overflow:auto;box-shadow:0 24px 65px rgba(15,40,34,.22)}.manual-menu{display:grid;gap:8px;border:0;padding:0;margin:0}.manual-menu legend{font-weight:800;margin-bottom:8px}.manual-menu label{grid-template-columns:1fr 72px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.manual-menu input{width:72px}.service-call-list{margin-bottom:24px}.service-call-list>div{display:grid;gap:10px}.service-call-list article{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #f0c4a9;border-radius:13px;background:#fff7f0}.service-call-list article>div{display:grid}.service-call-list small{color:var(--muted)}.service-call-list form{margin-left:auto}.service-call-pulse{width:12px;height:12px;border-radius:50%;background:#ff6b35;box-shadow:0 0 0 7px rgba(255,107,53,.15);animation:servicePulse 1.5s infinite}@keyframes servicePulse{50%{box-shadow:0 0 0 13px rgba(255,107,53,0)}}.guest-service-call{position:fixed;right:18px;bottom:86px;z-index:22}.guest-service-call button{min-height:48px;padding:0 18px;border:0;border-radius:24px;background:#172724;color:#fff;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.2)}
@media(max-width:760px){.portal-feedback-fab{top:auto;bottom:82px}.manual-order>form{position:fixed;inset:80px 12px auto;width:auto;max-height:calc(100vh - 100px)}.guest-service-call{bottom:82px;right:12px}}
.portal-logo{border:1px solid #dce3e0;color:var(--brand-contrast,#fff);box-shadow:0 3px 10px rgba(15,40,34,.08)}
.portal-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.restaurant-portal .sidebar nav a b,.restaurant-portal .portal-button{color:var(--portal-contrast,#fff);border:1px solid color-mix(in srgb,var(--portal-accent-text) 30%,#dce3e0)}
.restaurant-portal .eyebrow{color:var(--portal-accent-text,var(--portal-brand))}
.branding-preview{display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:18px 20px;background:linear-gradient(120deg,#fff,color-mix(in srgb,var(--preview-brand) 9%,#f4f8f6))}
.branding-preview-logo{display:grid;place-items:center;width:68px;height:68px;overflow:hidden;flex:0 0 auto;border:1px solid #dce3e0;border-radius:16px;background:var(--preview-brand);color:var(--preview-contrast);font:800 25px Manrope;box-shadow:0 7px 20px rgba(15,40,34,.1)}
.branding-preview-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.branding-preview>div{display:grid;gap:3px}.branding-preview small{color:var(--portal-accent-text);font-size:10px;font-weight:800;letter-spacing:.12em}.branding-preview strong{font:800 19px Manrope}.branding-preview>div>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.branding-preview i{display:inline-block;width:15px;height:15px;border:1px solid #bdc8c4;border-radius:50%;background:var(--preview-brand)}
.dish-edit-list{display:grid;gap:12px}.dish-edit-card{border:1px solid var(--line);border-radius:13px;background:#fafcfb;overflow:hidden}.dish-edit-card>summary{display:flex;align-items:center;gap:13px;padding:13px;cursor:pointer;list-style:none}.dish-edit-card>summary::-webkit-details-marker{display:none}.dish-edit-card>summary>img,.dish-edit-card>summary>.dish-thumb{width:52px;height:52px;border-radius:9px;object-fit:cover;flex:0 0 auto}.dish-edit-card>summary>span:nth-child(2){display:grid;min-width:0}.dish-edit-card>summary small{color:var(--muted);font-size:11px}.dish-edit-card>summary>b{margin-left:auto;color:var(--portal-accent-text);font-size:11px}.dish-edit-card[open]>summary{border-bottom:1px solid var(--line);background:#fff}.dish-edit-form{display:grid;gap:18px;padding:20px;background:#fff}.dish-edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dish-edit-form .image-preview{max-width:420px}.dish-edit-actions{display:flex;justify-content:flex-end;padding-top:5px}.dish-delete-form{display:flex;justify-content:flex-end;padding:0 20px 20px;background:#fff}.dish-delete-form .button-danger{border:1px solid #bd5549;background:#fff;color:#9a4037}.remove-image{width:max-content}.section-anchor{display:block;scroll-margin-top:125px}
@media(max-width:650px){.branding-preview{align-items:flex-start}.branding-preview-logo{width:56px;height:56px}.dish-edit-fields{grid-template-columns:1fr}.dish-edit-card>summary>b{font-size:0}.dish-edit-card>summary>b:after{content:'Bearbeiten';font-size:10px}.dish-edit-actions .button,.dish-delete-form .button{width:100%}}
.restaurant-portal .sidebar nav .nav-feedback{display:flex;align-items:center;gap:13px;width:100%;padding:12px 13px;border:1px solid color-mix(in srgb,var(--portal-accent-text) 25%,#dfe5e2);border-radius:9px;background:color-mix(in srgb,var(--portal-brand) 7%,white);color:var(--portal-accent-text);font:700 13px inherit;text-align:left;cursor:pointer}.restaurant-portal .sidebar nav .nav-feedback:hover{background:color-mix(in srgb,var(--portal-brand) 13%,white)}.restaurant-portal .sidebar nav .nav-feedback>span:last-child{width:auto}.portal-feedback-fab{display:none!important}.live-menu-message{position:sticky;top:116px;z-index:9;box-shadow:0 8px 25px rgba(15,40,34,.12)}.product-editor[hidden]{display:none!important}.rich-menu-list>.dish-edit-card{width:100%;margin-top:-3px;margin-bottom:8px;flex-basis:100%}
.allergen-gate .allergen-restaurant>span{color:var(--restaurant-on-brand,#fff)}.allergen-gate .eyebrow{color:var(--restaurant-accent,#31594f)}.allergen-select-grid input:checked+span{border-color:var(--restaurant-accent,#31594f);background:color-mix(in srgb,var(--restaurant-accent,#31594f) 10%,white);color:#172724;box-shadow:0 0 0 2px color-mix(in srgb,var(--restaurant-accent,#31594f) 22%,transparent)}.allergen-select-grid input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--restaurant-accent,#31594f) 32%,transparent)}
.allergen-select-grid input:checked+span,.chip-options input[name="allergens[]"]:checked+span{border-color:#b42318!important;background:#fff1f0!important;color:#8f1d14!important;box-shadow:0 0 0 2px rgba(180,35,24,.18)!important}.allergen-select-grid input:checked+span:after,.chip-options input[name="allergens[]"]:checked+span:after{content:'Ausgewählt';margin-left:auto;padding-left:8px;color:#b42318;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.order-allergy-alert{display:grid;gap:4px;margin:12px 0;padding:12px 13px;border:2px solid #b42318;border-radius:11px;background:#fff1f0;color:#7a1811;line-height:1.35}.order-allergy-alert strong{font-size:11px;letter-spacing:.07em;text-transform:uppercase}.order-allergy-alert span{font-weight:900}.order-allergy-alert small{color:#7a1811;font-size:10px}
.restaurant-portal .sidebar{overflow-y:auto;overscroll-behavior:contain}.restaurant-portal .sidebar nav a.active{position:relative;background:color-mix(in srgb,var(--portal-accent-text) 11%,#f7f8f7);color:var(--portal-accent-text);box-shadow:inset 3px 0 0 var(--portal-accent-text)}.restaurant-portal .sidebar nav a.active .nav-icon{color:var(--portal-accent-text)}
.menu-filter-bar{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(170px,.8fr) auto;gap:10px;align-items:end;margin-bottom:13px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}.menu-filter-bar label{gap:5px}.menu-filter-bar label>span{color:#63716d;font-size:10px}.menu-filter-bar input,.menu-filter-bar select{min-height:43px;background:#fafcfb}.menu-filter-bar>.tiny-button{min-height:43px;white-space:nowrap}.menu-category-tag{display:inline-flex;padding:2px 7px;border-radius:999px;background:#edf4f1;color:#3e6258;font-size:9px;font-weight:800}
.table-qr-card,.table-qr-body>div,.table-qr-body label,.copy-field{min-width:0}.copy-field input{width:0;min-width:0}.copy-field button{flex:0 0 auto}.table-actions>*{min-width:0;max-width:100%}.table-actions .button,.table-actions button{white-space:normal;line-height:1.25;text-align:center}
@media(max-width:1250px){.table-qr-grid{grid-template-columns:1fr}.table-qr-card{width:100%}}
@media(max-width:760px){.restaurant-portal .sidebar{width:min(320px,calc(100vw - 28px));padding:20px 16px}.restaurant-portal .sidebar>.brand{margin-bottom:22px}.restaurant-portal .sidebar nav{gap:4px}.restaurant-portal .sidebar nav a,.restaurant-portal .sidebar nav .nav-feedback{min-height:44px;padding:10px 12px}.restaurant-portal .sidebar-bottom{padding-top:18px}.menu-filter-bar{grid-template-columns:1fr}.menu-filter-bar>.tiny-button{width:100%}.management-heading,.manage-group{padding:17px 14px}.management-edit{grid-template-columns:1fr}.management-edit .tiny-button{width:100%}.management-meta{align-items:flex-start;flex-wrap:wrap}.table-qr-card{padding:14px}.table-qr-body{grid-template-columns:1fr}.table-qr-body>img{width:min(210px,100%);height:auto;margin:auto}.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto}.table-actions{display:grid;grid-template-columns:1fr}.table-actions>*,.table-actions form,.table-actions .button,.table-actions button{width:100%}}
@media(max-width:420px){.copy-field{grid-template-columns:1fr}.copy-field button{min-height:42px;border-radius:0 0 10px 10px}.copy-field input{width:100%;border-radius:10px 10px 0 0}.rich-menu-list>[data-menu-item-row]>b{width:100%;text-align:right}.rich-menu-list>[data-menu-item-row]>a,.rich-menu-list>[data-menu-item-row]>form{flex:1}.rich-menu-list>[data-menu-item-row]>a,.rich-menu-list>[data-menu-item-row] button{width:100%;text-align:center}}
.store-menu-toolbar{position:-webkit-sticky;position:sticky;top:86px;z-index:14;background:#fff;box-shadow:0 7px 20px rgba(24,43,37,.05)}.store-menu-toolbar .category-nav{position:static;top:auto;z-index:auto;justify-content:flex-start;scrollbar-width:thin;overscroll-behavior-inline:contain}.store-menu-toolbar .category-nav a:first-child{margin-left:auto}.store-menu-toolbar .category-nav a:last-child{margin-right:auto}.store-menu-toolbar .allergen-filter-note{border-bottom:1px solid #f3dfcf}.has-allergen-filter .menu-section{scroll-margin-top:225px}.store-footer nav{justify-content:center;flex-wrap:wrap}
@media(max-width:760px){.storefront{overflow:visible}.store-menu-toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:25;isolation:isolate}.store-menu-toolbar .category-nav{height:58px;gap:25px;padding-inline:16px}.store-menu-toolbar .allergen-filter-note{gap:12px;padding:10px 15px;text-align:left}.store-menu-toolbar .allergen-filter-note span{line-height:1.45}.store-menu-toolbar .allergen-filter-note a{flex:0 0 auto}.menu-section{scroll-margin-top:75px}.has-allergen-filter .menu-section{scroll-margin-top:135px}}

.service-table-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.service-table-overview article{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}.service-table-overview span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.service-table-overview strong{font:800 32px Manrope;color:var(--portal-accent-text,var(--portal-brand))}.service-table-overview small{color:var(--muted)}
.service-live-toast{position:fixed;right:22px;bottom:22px;z-index:80;display:grid;gap:4px;width:min(360px,calc(100vw - 28px));padding:17px 19px;border:1px solid color-mix(in srgb,var(--portal-brand) 35%,#dce3e0);border-radius:14px;background:#fff;color:#172724;box-shadow:0 18px 55px rgba(15,40,34,.2);animation:serviceToastIn .2s ease-out}.service-live-toast strong{color:var(--portal-accent-text,var(--portal-brand));font:800 15px Manrope}.service-live-toast span{color:var(--muted);font-size:12px}@keyframes serviceToastIn{from{opacity:0;transform:translateY(12px)}}
.guest-service-call{display:flex;align-items:end;gap:8px;padding:9px;border:1px solid #dfe5e2;border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 12px 36px rgba(0,0,0,.16);backdrop-filter:blur(12px)}.guest-service-call label{gap:3px}.guest-service-call label>span{padding-left:5px;color:#5f6b67;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.guest-service-call select{width:205px;min-height:44px;padding:9px 11px;border-radius:11px}.guest-service-call button{min-height:44px;border-radius:11px;box-shadow:none;white-space:nowrap}
@media(max-width:760px){.service-table-overview{grid-template-columns:1fr 1fr}.service-table-overview article:last-child{grid-column:1/-1}.guest-service-call{left:12px;right:12px}.guest-service-call label{min-width:0;flex:1}.guest-service-call select{width:100%}.guest-service-call button{padding-inline:13px}.service-live-toast{right:14px;bottom:86px}}
@media(max-width:430px){.guest-service-call{align-items:stretch;flex-direction:column}.guest-service-call button{width:100%}}
.app-dialog{width:min(92vw,480px);max-width:none;padding:0;border:0;border-radius:20px;background:#fff;color:#172724;box-shadow:0 28px 90px rgba(10,24,20,.3);overflow:hidden}.app-dialog::backdrop{background:rgba(12,22,20,.58);backdrop-filter:blur(3px)}.app-dialog-content{display:grid;gap:12px;padding:28px}.app-dialog-kicker{color:var(--portal-accent-text,var(--restaurant-accent,#31594f));font-size:10px;font-weight:900;letter-spacing:.13em}.app-dialog h2{margin:0;font:800 clamp(22px,4vw,28px)/1.15 Manrope,system-ui,sans-serif;letter-spacing:-.025em}.app-dialog p{margin:0;color:#5c6965;line-height:1.65}.app-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.app-dialog-actions button{min-height:46px;padding:0 19px;border-radius:11px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.app-dialog-cancel{border:1px solid #d7dfdc;background:#fff;color:#34433e}.app-dialog-confirm{border:1px solid transparent;background:var(--portal-brand,var(--restaurant-cta,#31594f));color:var(--portal-contrast,var(--restaurant-on-cta,#fff))}.app-dialog-actions button:focus-visible{outline:3px solid color-mix(in srgb,var(--portal-brand,var(--restaurant-cta,#31594f)) 30%,transparent);outline-offset:2px}@media(max-width:520px){.app-dialog-content{padding:23px 20px}.app-dialog-actions{flex-direction:column-reverse}.app-dialog-actions button{width:100%}}

/* Gemeinsamer Tischzugang und kompakte mobile Bestellung */
.guest-table-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px max(5vw,24px);border-bottom:1px solid #dfe7e3;background:#f3f8f5;color:#172724}.guest-table-status{display:flex;align-items:center;gap:10px;min-width:0}.guest-table-status>span{color:#23a66f;font-size:12px}.guest-table-status>div{display:grid;gap:2px}.guest-table-status strong{font-size:13px}.guest-table-status small{color:#66736f;font-size:11px}.guest-service-call{position:relative;right:auto;bottom:auto;left:auto;z-index:13;display:block;flex:0 0 auto;align-items:initial;gap:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.guest-service-call>summary{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border-radius:12px;background:#172724;color:#fff;font-size:12px;font-weight:800;cursor:pointer;list-style:none;box-shadow:0 7px 20px rgba(0,0,0,.12)}.guest-service-call>summary::-webkit-details-marker{display:none}.guest-service-call>summary:before{content:'\1F6CE';margin-right:7px;font-size:15px}.guest-service-call[open]>summary{border-radius:12px 12px 0 0}.guest-service-call>form{position:absolute;right:0;top:100%;display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:end;gap:8px;width:min(430px,calc(100vw - 24px));padding:12px;border:1px solid #dfe5e2;border-radius:14px 0 14px 14px;background:#fff;box-shadow:0 18px 48px rgba(0,0,0,.18)}.guest-service-call label{min-width:0;gap:3px}.guest-service-call label>span{padding-left:5px;color:#5f6b67;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.guest-service-call select{width:100%;min-height:44px;padding:9px 11px;border-radius:11px}.guest-service-call button{min-height:44px;padding:0 16px;border:0;border-radius:11px;background:#172724;color:#fff;font-weight:800;box-shadow:none;white-space:nowrap}
@media(max-width:760px){.guest-table-tools{align-items:stretch;padding:10px 12px}.guest-table-status small{max-width:46ch}.guest-service-call{right:auto;bottom:auto;left:auto}.guest-service-call>summary{height:100%;min-width:120px}.storefront{padding-bottom:90px}.store-hero{min-height:190px;padding:30px 18px}.store-hero h1{font-size:34px;margin:12px 0 8px}.store-hero p{font-size:14px;line-height:1.5}.menu-page{padding-top:25px;padding-right:10px;padding-left:10px}.menu-section{margin-bottom:38px}.menu-title{margin-bottom:13px;padding-inline:4px}.menu-title h2{font-size:22px}.food-grid{gap:10px}.food-card{min-height:0;padding:14px;border-radius:13px}.food-card.with-image{display:grid;grid-template-columns:112px minmax(0,1fr);min-height:148px}.food-card.with-image .food-image{width:112px;height:100%;min-height:148px}.food-card-content{min-width:0;padding:14px;gap:12px}.food-card-top{gap:10px}.food-card h3{font-size:15px}.food-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.store-price strong{font-size:13px}.quantity button{width:38px;height:36px}.quantity input{height:36px}.mobile-cart{bottom:max(10px,env(safe-area-inset-bottom));left:10px;right:10px}.cart-drawer{height:100dvh;padding:28px 18px max(24px,env(safe-area-inset-bottom))}.cart-drawer h2{font-size:26px;margin-bottom:18px}}
@media(max-width:760px){.food-card.with-image .food-picture{width:112px;height:100%;min-height:148px}.food-card.with-image .food-picture .food-image{width:100%;height:100%;min-height:148px}.crop-dialog{max-height:calc(100dvh - 20px);overflow:auto}.crop-stage{display:grid;max-height:55dvh;place-items:center}.crop-stage canvas{width:auto;max-width:100%;max-height:55dvh}.crop-format-progress{grid-template-columns:1fr 22px 1fr;gap:5px}.crop-format-progress span{padding:7px 5px;font-size:11px}}
@media(max-width:520px){.guest-table-tools{display:grid;grid-template-columns:minmax(0,1fr) auto}.guest-table-status small{display:none}.guest-service-call>form{position:fixed;top:auto;right:10px;bottom:max(78px,calc(env(safe-area-inset-bottom) + 72px));left:10px;width:auto;grid-template-columns:1fr;border-radius:14px}.guest-service-call>summary{min-width:112px;padding-inline:12px}.guest-service-call button{width:100%}}
@media(max-width:390px){.guest-table-status strong{font-size:11px}.guest-service-call>summary{min-width:102px;font-size:11px}.food-card.with-image{grid-template-columns:96px minmax(0,1fr)}.food-card.with-image .food-image{width:96px}.food-card-content{padding:12px}.food-card.with-image .store-price{position:absolute;right:0;top:0}.food-card.with-image .food-card-top{position:relative;padding-top:25px}}

/* Dashboard redesign: fast periods, visible branding, compact billing and editable CRM */
.period-toolbar{position:relative;display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:end;gap:18px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 6px 22px rgba(21,49,43,.04)}
.period-toolbar>div:first-child{display:grid;gap:2px}.period-toolbar>div:first-child strong{font:800 16px Manrope}.period-toolbar>div:first-child small{color:var(--muted);font-size:10px}.period-toolbar .period-switch{margin:0}.period-custom{display:flex;align-items:end;gap:7px}.period-custom label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.period-custom input{width:128px;min-height:34px;padding:6px 8px;border-radius:8px;font-size:10px}.period-custom .button{min-height:34px;padding:0 11px}.period-toolbar.is-loading{opacity:.55;pointer-events:none}.period-toolbar.is-loading:after{content:'Wird aktualisiert …';position:absolute;right:18px;bottom:-20px;color:var(--portal-accent-text);font-size:10px;font-weight:800}
.revenue-dashboard-grid{grid-template-columns:minmax(0,1.75fr) minmax(280px,.75fr)}.revenue-chart-panel{min-width:0}.revenue-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px}.revenue-chart-head h2{margin:0 0 4px}.revenue-chart-head p{margin:0;color:var(--muted);font-size:11px}.revenue-chart-facts{display:flex;gap:8px}.revenue-chart-facts>span{display:grid;min-width:100px;gap:3px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f7faf8}.revenue-chart-facts small{color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.revenue-chart-facts strong{font:800 13px Manrope}.revenue-line-chart{width:100%;min-width:0}.revenue-line-chart svg{display:block;width:100%;height:auto;max-height:255px;overflow:visible}.chart-grid-line{stroke:#e7ecea;stroke-width:1;stroke-dasharray:4 5}.chart-y-label,.chart-x-label{fill:#81908b;font:9px Manrope}.chart-area{fill:url(#revenueArea)}.chart-line{fill:none;stroke:var(--portal-accent-text,#31594f);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-point-halo{fill:var(--portal-accent-text,#31594f);opacity:.14}.chart-point{fill:var(--portal-accent-text,#31594f);stroke:#fff;stroke-width:2;cursor:help;vector-effect:non-scaling-stroke}.chart-point:focus{outline:none;stroke:#172724;stroke-width:3}.chart-point-value{fill:var(--portal-accent-text,#31594f);font:800 10px Manrope;opacity:0;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;transition:opacity .15s}.chart-point:hover+.chart-point-value,.chart-point:focus+.chart-point-value{opacity:1}.top-dishes-panel{min-width:0}.top-dishes-panel .ranking>div{grid-template-columns:28px minmax(0,1fr) auto}.top-dishes-panel .ranking strong,.top-dishes-panel .ranking em{overflow-wrap:anywhere}
.compact-copy{margin-bottom:4px}.plan-choice:has(input:checked){border-color:var(--portal-accent-text);background:color-mix(in srgb,var(--portal-brand) 7%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-brand) 15%,transparent)}.plan-choice em{width:max-content;padding:4px 7px;border-radius:999px;background:var(--portal-brand);color:var(--portal-contrast);font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.upsell-section{margin-top:22px}.upsell-section .section-head{margin-bottom:15px}.upsell-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.upsell-grid article{display:grid;grid-template-rows:1fr auto auto;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafcfb}.upsell-grid strong{font-size:13px}.upsell-grid p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.upsell-grid article>span{color:var(--portal-accent-text);font-size:11px;font-weight:850}.upsell-grid .button{min-height:38px;padding-inline:10px;font-size:10px}
.brand-color-field{display:flex;align-items:center;gap:10px;min-height:43px;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.brand-color-field input{width:46px;height:31px;padding:1px;border:0}.brand-color-field output{color:var(--muted);font:800 11px Manrope;letter-spacing:.04em}.branding-preview{border-color:color-mix(in srgb,var(--preview-brand) 28%,var(--line));box-shadow:0 9px 30px color-mix(in srgb,var(--preview-brand) 10%,transparent)}
.contact-edit-list{display:grid;gap:10px}.contact-edit-card{padding:0;overflow:hidden}.contact-edit-card>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:15px 17px;cursor:pointer;list-style:none}.contact-edit-card>summary::-webkit-details-marker{display:none}.contact-edit-card>summary>span:nth-child(2){display:grid}.contact-edit-card>summary small{color:var(--muted);font-size:10px}.contact-edit-card>summary>b{color:var(--green-2);font-size:10px}.contact-edit-card[open]>summary{border-bottom:1px solid var(--line);background:#fafcfb}.contact-edit-card>.form-grid{padding:18px}.contact-card-actions{display:flex;justify-content:flex-end}.contact-delete{display:flex;justify-content:flex-end;padding:0 18px 15px}
.restaurant-logo img{width:100%;height:100%;object-fit:contain;border-radius:inherit;background:#fff}.admin-brand-summary{display:flex;align-items:center;gap:15px;margin-bottom:16px;padding:14px 17px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));border-radius:14px;background:linear-gradient(120deg,#fff,color-mix(in srgb,var(--brand) 8%,#f4f8f6))}.admin-brand-summary>.restaurant-logo{background:var(--brand);color:#fff}.admin-brand-summary>div{display:grid;gap:2px}.admin-brand-summary small{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.1em}.admin-brand-summary strong{font:800 16px Manrope}.admin-brand-summary>div>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.admin-brand-summary i{display:block;width:13px;height:13px;border:1px solid #c3ceca;border-radius:50%;background:var(--brand)}
.revenue-chart-facts em{color:var(--muted);font-size:8px;font-style:normal}
.chart-hit-area{fill:transparent;pointer-events:all;cursor:crosshair}.chart-hover{pointer-events:none}.chart-hover line{stroke:var(--portal-accent-text,#31594f);stroke-width:1;stroke-dasharray:3 4;opacity:.55;vector-effect:non-scaling-stroke}.chart-hover [data-chart-hover-halo]{fill:var(--portal-accent-text,#31594f);opacity:.18}.chart-hover [data-chart-hover-point]{fill:var(--portal-accent-text,#31594f);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.chart-hover [data-chart-tooltip] rect{fill:#172724;filter:drop-shadow(0 5px 10px rgba(15,40,34,.2))}.chart-hover [data-chart-tooltip] text{fill:#fff;font:800 9px Manrope;letter-spacing:.01em}
.chart-hover[hidden]{display:none}
.revenue-line-chart [data-revenue-chart]{cursor:crosshair}
@media(max-width:1100px){.period-toolbar{grid-template-columns:1fr auto}.period-custom{grid-column:1/-1;justify-content:flex-end}.upsell-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:650px){.period-toolbar{grid-template-columns:1fr}.period-toolbar .period-switch{justify-content:flex-start}.period-custom{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.period-custom label,.period-custom input{width:100%}.period-custom .button{grid-column:1/-1}.upsell-grid{grid-template-columns:1fr}.contact-edit-card>summary{grid-template-columns:auto minmax(0,1fr) auto}.contact-edit-card>summary>.badge{grid-column:2}.contact-edit-card>summary>b{grid-column:3;grid-row:1/3}.contact-card-actions .button{width:100%}}
@media(max-width:650px){.revenue-chart-head{display:grid}.revenue-chart-facts{width:100%}.revenue-chart-facts>span{min-width:0;flex:1}.revenue-line-chart{margin-inline:-8px;width:calc(100% + 16px)}.chart-y-label{display:none}}
@media(max-width:390px){.food-card.with-image .food-picture{width:96px}}

.management-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none}.management-disclosure>summary::-webkit-details-marker{display:none}.management-disclosure .management-toggle{display:flex;align-items:center;gap:9px;color:var(--portal-accent-text,var(--portal-brand));font-size:11px;font-weight:800}.management-disclosure .management-toggle i{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:#fff;font-style:normal;font-size:18px;transition:transform .18s}.management-disclosure[open] .management-toggle i{transform:rotate(180deg)}.management-disclosure[open] .management-toggle b{font-size:0}.management-disclosure[open] .management-toggle b:after{content:'Schließen';font-size:11px}.management-disclosure:not([open]) .management-heading{border-bottom:0}.management-disclosure:not([open]) .management-columns{display:none}
@media(max-width:600px){.management-disclosure .management-heading{padding:17px 14px}.management-disclosure .management-heading h2{font-size:19px}.management-disclosure .management-toggle b{display:none}}

.location-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:22px;align-items:start}.location-list{display:grid;gap:12px}.location-card{padding:0;overflow:hidden}.location-card>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 21px;cursor:pointer;list-style:none}.location-card>summary::-webkit-details-marker{display:none}.location-card>summary>div{min-width:0}.location-card h3{margin:8px 0 3px;font-size:18px}.location-card summary p{margin:0;color:var(--muted);font-size:11px}.location-primary{display:inline-flex;margin-left:6px;padding:4px 8px;border-radius:999px;background:#e9f3ff;color:#356a9c;font-size:9px;font-weight:800}.location-chevron{font-size:22px;transition:transform .18s}.location-card[open] .location-chevron{transform:rotate(180deg)}.location-form{display:grid;gap:16px;padding:20px 21px;border-top:1px solid var(--line)}.location-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.location-fields .span-2{grid-column:1/-1}.location-options{display:flex;flex-wrap:wrap;gap:9px}.location-options label{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:9px;background:#f3f7f5;font-size:10px;font-weight:700}.location-options input{width:auto}.location-form>.button{justify-self:end}.location-delete{display:flex;justify-content:flex-end;padding:0 21px 17px}.location-create{position:sticky;top:126px}.location-create h2{margin:7px 0 19px}.location-create-row{display:grid;grid-template-columns:120px 1fr;gap:10px}.location-plan-note{display:grid;gap:12px;padding:17px;border-radius:12px;background:#f2f7f5}.location-plan-note p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.location-plan-note .button{width:100%}
@media(max-width:1050px){.location-layout{grid-template-columns:1fr}.location-create{position:static;order:-1}}
@media(max-width:600px){.location-card>summary,.location-form{padding:16px 14px}.location-fields{grid-template-columns:1fr}.location-fields .span-2{grid-column:auto}.location-create-row{grid-template-columns:1fr}.location-form>.button{width:100%}.location-delete{padding-inline:14px}.location-primary{margin-left:3px}}

/* Dauerhaft erreichbarer Serviceruf und barrierearme Bestelloberfläche */
.skip-link{position:fixed;top:10px;left:10px;z-index:120;transform:translateY(-160%);padding:11px 15px;border-radius:9px;background:#fff;color:#172724;font-size:13px;font-weight:800;box-shadow:0 8px 30px rgba(0,0,0,.24)}.skip-link:focus{transform:none}
.guest-table-tools .guest-service-call{position:fixed;right:18px;bottom:22px;left:auto;z-index:28;display:block;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
.guest-table-tools .guest-service-call>summary{gap:9px;min-height:50px;padding:5px 17px 5px 7px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#172724;color:#fff;box-shadow:0 12px 34px rgba(12,28,24,.28)}
.guest-table-tools .guest-service-call>summary:before{content:none}.guest-service-call>summary svg{display:block;width:38px;height:38px;padding:8px;border-radius:50%;background:#fff;color:#172724;flex:0 0 auto}.guest-service-call>summary span{white-space:nowrap}
.guest-table-tools .guest-service-call[open]>summary{border-radius:999px}.guest-table-tools .guest-service-call>form{position:absolute;right:0;top:auto;bottom:calc(100% + 10px);grid-template-columns:minmax(210px,1fr) auto;width:min(460px,calc(100vw - 24px));border-radius:15px}.guest-service-call label>small{padding-left:5px;color:#66736f;font-size:10px;font-weight:500;line-height:1.4}
.storefront :where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--restaurant-accent,#31594f) 45%,#fff);outline-offset:3px}.storefront [tabindex="-1"]:focus{outline:0}.storefront .drawer-overlay{cursor:pointer}.storefront .drawer-close{min-width:44px;min-height:44px}.storefront .quantity button{min-width:44px;min-height:44px}.storefront .quantity input{height:44px}.storefront .store-footer{font-size:12px;line-height:1.6}
.cart-open .guest-service-call{opacity:0;pointer-events:none}
@media(max-width:760px){.guest-table-tools{min-height:58px;padding-right:72px}.guest-table-tools .guest-service-call{right:10px;bottom:max(12px,env(safe-area-inset-bottom));left:auto}.has-cart-items .guest-table-tools .guest-service-call{bottom:max(82px,calc(env(safe-area-inset-bottom) + 72px))}.guest-table-tools .guest-service-call>summary{min-width:0;height:auto;padding-right:14px}.guest-table-tools .guest-service-call>form{position:fixed;right:10px;bottom:max(74px,calc(env(safe-area-inset-bottom) + 64px));left:10px;width:auto;grid-template-columns:1fr;border-radius:15px}.has-cart-items .guest-table-tools .guest-service-call>form{bottom:max(144px,calc(env(safe-area-inset-bottom) + 134px))}.guest-service-call button{width:100%;min-height:48px}.storefront .quantity button{width:44px;height:44px}.storefront .quantity input{height:44px}.storefront:not(.has-cart-items){padding-bottom:92px}}
@media(prefers-reduced-motion:reduce){.storefront *,.storefront *::before,.storefront *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){.guest-service-call>summary,.mobile-cart,.store-button{border:2px solid ButtonText}.guest-service-call>summary svg{border:1px solid ButtonText}}
@media(max-width:760px){.storefront.has-cart-items{padding-bottom:150px}}

/* Camera-first dish photos on mobile */
input[data-crop-image]{width:100%;padding:7px;border-style:dashed;background:#f8fbfa;color:#53645f}
input[data-crop-image]::file-selector-button{min-height:42px;margin-right:11px;padding:0 14px;border:0;border-radius:9px;background:var(--portal-brand,#172724);color:var(--portal-contrast,#fff);font:800 12px Inter,system-ui,sans-serif;cursor:pointer}
@media(max-width:760px){
  input[data-crop-image]{min-height:58px;padding:7px;font-size:12px}
  input[data-crop-image]::file-selector-button{min-height:44px}
}

/* Collapsible menu management and dish creation */
.dish-create-disclosure{padding:0;overflow:hidden}
.dish-create-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;cursor:pointer;list-style:none}
.dish-create-heading::-webkit-details-marker{display:none}
.dish-create-heading>div{min-width:0}.dish-create-heading h2{margin:6px 0 0}
.dish-create-toggle{display:flex;align-items:center;gap:9px;color:var(--portal-accent-text,var(--portal-brand));font-size:11px;font-weight:800}
.dish-create-toggle i{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:18px;font-style:normal;transition:transform .18s}
.dish-create-disclosure[open] .dish-create-heading{border-bottom:1px solid var(--line)}
.dish-create-disclosure[open] .dish-create-toggle i{transform:rotate(180deg)}
.dish-create-disclosure[open] .dish-create-toggle b{font-size:0}
.dish-create-disclosure[open] .dish-create-toggle b:after{content:'Schließen';font-size:11px}
.dish-create-body{padding:22px 24px 24px}
@media(max-width:1050px){
  .menu-builder>.dish-create-disclosure{order:-1;width:100%}
}
@media(max-width:600px){
  .dish-create-heading{padding:17px 14px}.dish-create-heading h2{font-size:19px}
  .dish-create-toggle b{display:none}.dish-create-body{padding:17px 14px 18px}
}

/* Polished disclosure controls */
.management-toggle i,.dish-create-toggle i{position:relative;display:grid!important;place-items:center;width:34px!important;height:34px!important;padding:0;border-color:#d8e1de!important;border-radius:10px!important;background:#fff!important;color:var(--portal-accent-text,var(--portal-brand));font-size:0!important;box-shadow:0 3px 10px rgba(18,39,33,.05);transition:transform .28s cubic-bezier(.22,1,.36,1),background .2s,border-color .2s,box-shadow .2s}
.management-toggle i:before,.dish-create-toggle i:before{content:'';display:block;width:7px;height:7px;margin-top:-4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .28s cubic-bezier(.22,1,.36,1)}
.management-heading:hover .management-toggle i,.dish-create-heading:hover .dish-create-toggle i{border-color:color-mix(in srgb,var(--portal-accent-text,var(--portal-brand)) 35%,#d8e1de)!important;background:color-mix(in srgb,var(--portal-brand) 7%,#fff)!important;box-shadow:0 7px 18px rgba(18,39,33,.1);transform:translateY(-1px)}
.management-heading:active .management-toggle i,.dish-create-heading:active .dish-create-toggle i{transform:scale(.94)}
.management-disclosure[open] .management-toggle i,.dish-create-disclosure[open] .dish-create-toggle i{transform:rotate(180deg)}
.management-disclosure[open] .management-heading:hover .management-toggle i,.dish-create-disclosure[open] .dish-create-heading:hover .dish-create-toggle i{transform:translateY(-1px) rotate(180deg)}
.management-disclosure[open] .management-heading:active .management-toggle i,.dish-create-disclosure[open] .dish-create-heading:active .dish-create-toggle i{transform:scale(.94) rotate(180deg)}
.management-disclosure[open] .management-toggle i:before,.dish-create-disclosure[open] .dish-create-toggle i:before{transform:rotate(45deg)}
.management-disclosure[open]>.management-columns,.dish-create-disclosure[open]>.dish-create-body{animation:disclosureReveal .26s cubic-bezier(.22,1,.36,1) both;transform-origin:top}
@keyframes disclosureReveal{from{opacity:0;transform:translateY(-8px) scaleY(.985)}to{opacity:1;transform:none}}
@media(min-width:761px){
  .dish-create-disclosure>.dish-create-heading{cursor:default;border-bottom:1px solid var(--line);pointer-events:none}
  .dish-create-disclosure>.dish-create-body,.dish-create-disclosure:not([open])>.dish-create-body{display:block!important}
  .dish-create-disclosure .dish-create-toggle{display:none}
}
@media(prefers-reduced-motion:reduce){
  .management-toggle i,.dish-create-toggle i,.management-toggle i:before,.dish-create-toggle i:before{transition:none}
  .management-disclosure[open]>.management-columns,.dish-create-disclosure[open]>.dish-create-body{animation:none}
}

/* Explicit photo source selection and precisely centred disclosure arrows */
.photo-upload-field{display:grid;gap:8px}
.photo-upload-title{font-size:13px;font-weight:800}
.photo-source-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.photo-source-button{position:relative;display:flex!important;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:48px;padding:10px 12px;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;line-height:1.25;text-align:center;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.photo-source-button:hover{border-color:color-mix(in srgb,var(--portal-brand) 42%,var(--line));background:color-mix(in srgb,var(--portal-brand) 6%,#fff);box-shadow:0 6px 16px rgba(18,39,33,.08);transform:translateY(-1px)}
.photo-source-button:active{transform:scale(.98)}
.photo-source-button:focus-within{outline:3px solid color-mix(in srgb,var(--portal-brand) 24%,transparent);outline-offset:2px}
.photo-source-button.camera-source{border-color:transparent;background:var(--portal-brand);color:var(--portal-contrast,#fff)}
.photo-source-button.camera-source:hover{background:color-mix(in srgb,var(--portal-brand) 90%,#000)}
.photo-source-button .icon{display:block;flex:0 0 auto;width:18px;height:18px}
input.photo-source-input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;cursor:pointer!important}

.management-toggle i:before,.dish-create-toggle i:before{display:none!important}
.management-toggle i,.dish-create-toggle i{line-height:0!important}
.management-toggle i svg,.dish-create-toggle i svg{position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;overflow:visible;transform:translate(-50%,-50%)}

@media(min-width:761px){
  .photo-source-picker{grid-template-columns:1fr}
  .photo-source-button.camera-source{display:none!important}
}
@media(max-width:390px){
  .photo-source-picker{grid-template-columns:1fr}
}
.plan-change-toast{position:fixed;right:22px;bottom:22px;z-index:100;display:grid;gap:5px;width:min(390px,calc(100vw - 28px));padding:18px 20px;border:1px solid #b9dfcc;border-radius:14px;background:#f0fbf5;color:#172724;box-shadow:0 18px 55px rgba(15,40,34,.22);animation:serviceToastIn .2s ease-out}.plan-change-toast strong{color:#176843;font:800 15px Manrope}.plan-change-toast span{font-size:12px;line-height:1.5}.plan-change-toast.error{border-color:#efc3bd;background:#fff4f2}.plan-change-toast.error strong{color:#9d3227}@media(max-width:760px){.plan-change-toast{right:14px;bottom:86px}}
.plan-pending-notice{display:flex;align-items:center;gap:7px;border:1px solid #efd59a;background:#fff9e9;color:#715719}.plan-pending-notice strong{color:#5d4510}
/* Mobile SaaS navigation */
.mobile-admin-nav{display:none}
@media(max-width:760px){
  .saas-portal .content{padding-bottom:calc(102px + env(safe-area-inset-bottom))}
  .saas-portal .topbar{box-shadow:0 5px 20px rgba(18,35,33,.06)}
  .saas-portal .mobile-admin-nav{position:fixed;right:10px;bottom:max(8px,env(safe-area-inset-bottom));left:10px;z-index:55;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;min-height:66px;padding:6px;border:1px solid rgba(215,225,221,.95);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 14px 44px rgba(14,38,31,.18);backdrop-filter:blur(18px)}
  .saas-portal .mobile-admin-nav a{display:grid;place-items:center;align-content:center;gap:3px;min-width:0;border-radius:13px;color:#71807b;font-size:9px;font-weight:800;line-height:1.1;text-align:center}
  .saas-portal .mobile-admin-nav a .icon{width:20px;height:20px}
  .saas-portal .mobile-admin-nav a.active{background:#fff0e9;color:#e85b27}
  .saas-portal .mobile-admin-nav a:focus-visible{outline:3px solid rgba(255,107,53,.24);outline-offset:-2px}
  .saas-portal .table-wrap:after{content:'Seitlich wischen →';position:sticky;right:8px;bottom:6px;display:block;width:max-content;margin:-3px 8px 7px auto;padding:5px 8px;border-radius:999px;background:#172724;color:#fff;font-size:8px;font-weight:800;letter-spacing:.03em;opacity:.82;pointer-events:none}
  .saas-portal input,.saas-portal select,.saas-portal textarea{font-size:16px}
  .saas-portal button,.saas-portal .button,.saas-portal a.round-link{touch-action:manipulation}
}
@media(max-width:380px){
  .saas-portal .mobile-admin-nav{right:6px;left:6px}
  .saas-portal .mobile-admin-nav a{font-size:8px}
  .saas-portal .stat-grid{grid-template-columns:1fr}
}
