/* =================================================================
   GoAppetite — Design Foundation
   Brand: Navy + Teal/Green + Orange accent
   Mobile-first, responsive, RTL-ready (logical properties used
   where practical so app.rtl.css can stay minimal).
   ================================================================= */

:root {
  --ds-navy: #0b2545;
  --ds-navy-dark: #071a33;
  --ds-teal: #0f9b8e;
  --ds-green: #1fa678;
  --ds-orange: #f5821f;
  --ds-orange-light: #ff9d3d;
  --ds-bg: #f6f8fa;
  --ds-surface: #ffffff;
  --ds-text: #16253a;
  --ds-text-muted: #5b6b7f;
  --ds-border: #e2e8ef;
  --ds-danger: #d64545;
  --ds-success: #1fa678;
  --ds-radius: 10px;
  --ds-shadow: 0 2px 10px rgba(11, 37, 69, 0.08);
  --ds-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--ds-font);
  background: var(--ds-bg);
  color: var(--ds-text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ds-teal); text-decoration: none; }
a:hover { text-decoration: underline; }

.container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ---- Header ---- */
.ds-header {
  background: var(--ds-navy);
  color: #fff;
  padding: 12px 0;
}
.ds-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.ds-header .logo { display: flex; align-items: center; gap: 10px; }
.ds-header .logo img { height: 36px; width: auto; display: block; }
.ds-header nav { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.ds-header nav a { color: #dfe9f5; font-weight: 500; }
.ds-header nav a:hover { color: #fff; text-decoration: none; }

/* ---- Buttons ---- */
.btn {
  display: inline-block;
  padding: 10px 20px;
  border-radius: var(--ds-radius);
  border: none;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  text-align: center;
}
.btn-primary { background: var(--ds-teal); color: #fff; }
.btn-primary:hover { background: #0c8377; text-decoration: none; }
.btn-accent { background: var(--ds-orange); color: #fff; }
.btn-accent:hover { background: #dd7015; text-decoration: none; }
.btn-outline { background: transparent; border: 1.5px solid var(--ds-navy); color: var(--ds-navy); }
.btn-block { display: block; width: 100%; }

/* ---- Cards ---- */
.card {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  padding: 20px;
}
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.restaurant-card h3 { margin: 0 0 4px; color: var(--ds-navy); }
.restaurant-card .meta { color: var(--ds-text-muted); font-size: 14px; }

/* ---- Forms ---- */
.form-group { margin-bottom: 16px; }
label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }
input[type="text"], input[type="email"], input[type="password"], input[type="tel"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--ds-border);
  border-radius: 8px;
  font-size: 15px;
  background: #fff;
}
input:focus { outline: 2px solid var(--ds-teal); outline-offset: 1px; }
.auth-card { max-width: 420px; margin: 48px auto; }

/* ---- Alerts / Badges ---- */
.alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 14px; }
.alert-danger { background: #fdeaea; color: #8a2424; border: 1px solid #f3c2c2; }
.alert-success { background: #e8f7f1; color: #12664a; border: 1px solid #b9e6d3; }
.badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.badge-open { background: #e3f6ee; color: var(--ds-success); }
.badge-busy { background: #fff2e2; color: var(--ds-orange); }
.badge-closed { background: #f1f1f3; color: var(--ds-text-muted); }

/* ---- Hero ---- */
.hero { background: linear-gradient(135deg, var(--ds-navy), var(--ds-teal)); color: #fff; padding: 56px 0; }
.hero h1 { font-size: 32px; margin: 0 0 12px; }
.hero p { font-size: 17px; color: #e2effa; max-width: 560px; }
.tagline { color: var(--ds-green); font-weight: 600; }

/* ---- Footer ---- */
.ds-footer {
  margin-top: 48px;
  padding: 24px 0;
  border-top: 1px solid var(--ds-border);
  color: var(--ds-text-muted);
  font-size: 13px;
  text-align: center;
}
.ds-footer .footer-links {
  margin-top: 8px;
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.ds-footer .footer-links a {
  color: var(--ds-text-muted);
  text-decoration: underline;
}

/* ---- Tables ---- */
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--ds-border); font-size: 14px; }
th { color: var(--ds-text-muted); font-weight: 600; }

/* ---- Responsive ---- */
@media (max-width: 640px) {
  .hero h1 { font-size: 26px; }
  .ds-header .container { flex-direction: column; align-items: flex-start; }
}

/* ---- RTL support hook ----
   When app.default_locale/current locale = ar, layout adds dir="rtl"
   to <html>; this rule flips flex direction for the header nav. */
html[dir="rtl"] .ds-header .container { flex-direction: row-reverse; }
html[dir="rtl"] th, html[dir="rtl"] td { text-align: right; }

/* ---- Reports & Receipts (Prompt 06) ---- */
.report-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 12px; }
.report-card { background: #fff; border: 1px solid var(--ds-border); border-radius: 10px; padding: 14px; }
.report-card .value { font-size: 22px; font-weight: 700; color: var(--ds-navy); }
.report-card .label { font-size: 12px; color: var(--ds-text-muted); margin-top: 4px; }
.report-nav { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; }
.report-nav a { padding: 6px 12px; border-radius: 8px; background: #f3f6fa; color: var(--ds-navy); text-decoration: none; font-size: 13px; }
.report-nav a.active { background: var(--ds-navy); color: #fff; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll table { min-width: 600px; }
.receipt-box { max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid var(--ds-border); border-radius: 10px; padding: 24px; }
.receipt-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 14px; }
.receipt-total { font-weight: 700; font-size: 18px; border-top: 2px solid var(--ds-navy); padding-top: 8px; margin-top: 8px; }

/* ---- Print styles (section 26) — no special printer library,
   just standard CSS print media rules; hides navigation/filters/
   export controls and lets tables/receipts flow across pages. ---- */
@media print {
  .ds-header, .report-nav, .no-print, form, details > summary { display: none !important; }
  details { display: block !important; }
  body { background: #fff; color: #000; }
  .container { max-width: 100% !important; padding: 0 !important; }
  .card, .report-card, .receipt-box { border: 1px solid #999 !important; box-shadow: none !important; break-inside: avoid; }
  table { font-size: 11px; }
  a { color: #000 !important; text-decoration: none !important; }
}

/* ---- Responsive hardening (final browser audit) ---- */
img, svg, video, canvas { max-width: 100%; height: auto; }
button, input, select, textarea { max-width: 100%; }
.grid, .card-grid, .report-cards, [style*="display:grid"] > *, [style*="display: grid"] > * { min-width: 0; }
pre, code { overflow-wrap: anywhere; }

@media (max-width: 640px) {
  .container { padding-left: 12px; padding-right: 12px; }
  .ds-header .logo img { height: 32px; }
  .ds-header nav { width: 100%; gap: 8px 12px; }
  .ds-header nav a { font-size: 14px; }
  .hero { padding: 38px 0; }
  .hero h1 { font-size: 26px; line-height: 1.2; }
  .hero p { font-size: 15px; }
  .card { padding: 16px; }
  .receipt-row { gap: 12px; align-items: flex-start; }
  .receipt-row > * { min-width: 0; overflow-wrap: anywhere; }
  .table-scroll { width: 100%; max-width: 100%; }
  .table-scroll table { min-width: 560px; }
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr 1fr"],
  [style*="grid-template-columns:1.4fr .7fr"],
  [style*="grid-template-columns:1.4fr .7fr .6fr"],
  [style*="grid-template-columns:1.4fr .7fr .6fr .7fr"],
  [style*="grid-template-columns:1.4fr .7fr .6fr .7fr .8fr"] {
    grid-template-columns: 1fr !important;
  }
  .btn { min-height: 42px; }
}


/* GoAppetite modern marketplace layer */\n:root{--ga-ink:#122033;--ga-muted:#667085;--ga-line:#e7ebf0;--ga-surface:#fff;--ga-soft:#f7f9fc;--ga-primary:#0b7f73;--ga-accent:#ff7a1a;--ga-radius:18px;--ga-shadow:0 12px 36px rgba(16,24,40,.08)}\nbody{background:#f7f9fc;color:var(--ga-ink)}\n.ds-header{position:sticky;top:0;z-index:50;background:rgba(11,37,69,.96);backdrop-filter:blur(12px);padding:10px 0;box-shadow:0 4px 18px rgba(7,26,51,.12)}\n.ds-header .container{max-width:1240px}.ds-header .logo img{height:52px}.ds-header nav{gap:8px}.ds-header nav a{padding:9px 11px;border-radius:10px}.ds-header nav a:hover{background:rgba(255,255,255,.09)}\n.ds-footer{margin-top:72px;background:#0b1930;color:#aeb9c8;border:0;text-align:left;padding:48px 0 26px}.ds-footer .container{max-width:1240px}.ds-footer a{color:#dbe4ef;text-decoration:none}.ds-footer .footer-links{justify-content:flex-start;gap:20px}.ds-footer .tagline{color:#5dd2b8}\n.hero{padding:78px 0 88px;background:radial-gradient(circle at 85% 20%,rgba(255,122,26,.28),transparent 30%),linear-gradient(135deg,#071a33 0%,#0c4f57 55%,#0b7f73 100%)}.hero h1{font-size:clamp(38px,5vw,64px);letter-spacing:-.04em;max-width:760px}.hero p{font-size:19px;max-width:680px}\n.card{border-color:var(--ga-line);border-radius:var(--ga-radius);box-shadow:var(--ga-shadow)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px}.restaurant-card{transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}.restaurant-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(16,24,40,.12);text-decoration:none}.restaurant-card h3{font-size:19px}.restaurant-card img{border-radius:14px!important;height:170px!important}\ninput[type=text],input[type=email],input[type=password],input[type=tel],input[type=search],select,textarea{border:1px solid #dfe5ec;border-radius:12px;padding:12px 14px;background:#fff;min-height:46px}select{appearance:auto}.soft-input{width:100%;margin:8px 0 14px}.preference-block{background:#f8fafc;border:1px solid var(--ga-line);border-radius:16px;padding:18px}.section-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--ga-primary);margin-bottom:6px}.form-title{font-size:20px}.choice-grid{display:flex;flex-wrap:wrap;gap:9px}.choice-chip{margin:0;cursor:pointer}.choice-chip input{position:absolute;opacity:0;pointer-events:none}.choice-chip span{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid #dfe5ec;border-radius:999px;background:#fff;color:#344054;font-weight:600;transition:.15s}.choice-chip input:checked+span{background:#e7f7f3;border-color:#79cbbd;color:#075e55;box-shadow:0 0 0 2px rgba(15,155,142,.08)}\n.onboarding-shell{max-width:920px;margin:34px auto}.onboarding-hero{padding:32px 4px 20px}.onboarding-hero h1{font-size:clamp(32px,5vw,48px);letter-spacing:-.03em;margin:0 0 10px}.onboarding-card{background:#fff;border:1px solid var(--ga-line);border-radius:24px;box-shadow:var(--ga-shadow);padding:28px}.step-pill{display:inline-block;margin:18px 0 14px;padding:7px 12px;border-radius:999px;background:#eef7f5;color:#08766c;font-size:12px;font-weight:800;letter-spacing:.06em}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.location-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.map-box{height:330px;border-radius:18px;overflow:hidden;background:#e9eef3;margin:10px 0}.suggestion-list{display:grid;gap:6px;margin-bottom:10px}.suggestion-item{border:1px solid var(--ga-line);background:#fff;border-radius:10px;padding:11px 13px;text-align:left;cursor:pointer}.suggestion-item:hover{background:#f5faf9}.notice-card{background:#f8fafc;border:1px solid var(--ga-line);border-radius:14px;padding:14px;margin:12px 0}.check-row{display:flex;gap:9px;align-items:flex-start;margin:18px 0}.centered{text-align:center}\n@media(max-width:700px){.ds-header .container{flex-direction:row;align-items:center}.ds-header .logo img{height:44px}.ds-header nav{width:auto;max-width:68vw;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}.ds-header nav a{font-size:13px}.hero{padding:54px 0 60px}.hero h1{font-size:38px}.form-grid-2{grid-template-columns:1fr}.onboarding-card{padding:20px;border-radius:18px}.card-grid{grid-template-columns:1fr 1fr;gap:12px}.restaurant-card img{height:130px!important}}\n@media(max-width:460px){.card-grid{grid-template-columns:1fr}.ds-header nav a{padding:7px 8px}.ds-header .logo img{height:40px}}\n
.discovery-shell{max-width:1240px;margin:38px auto}.discovery-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:24px}.discovery-head h1{font-size:clamp(32px,4vw,48px);letter-spacing:-.035em;margin:0 0 6px}.location-pill{background:#fff;border:1px solid var(--ga-line);padding:11px 14px;border-radius:999px;color:var(--ga-ink);box-shadow:var(--ga-shadow);white-space:nowrap}.location-pill span{color:var(--ga-primary);font-weight:700;margin-left:7px}.discovery-tools{background:#fff;border:1px solid var(--ga-line);border-radius:20px;padding:14px;box-shadow:var(--ga-shadow)}.search-large{display:flex;align-items:center;gap:10px;background:#f7f9fc;border-radius:14px;padding:0 14px}.search-large span{font-size:24px;color:#667085}.search-large input{border:0!important;background:transparent!important;outline:0!important;font-size:16px;min-height:52px}.quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}.filter-chip{margin:0}.filter-chip input{position:absolute;opacity:0}.filter-chip span,.quick-chips select{display:inline-flex;align-items:center;min-height:40px;border:1px solid #dfe5ec;border-radius:999px;background:#fff;padding:8px 13px;font-weight:600;color:#344054}.filter-chip input:checked+span{background:#e7f7f3;border-color:#79cbbd;color:#075e55}.quick-chips select{appearance:auto}.cuisine-rail{display:flex;gap:14px;align-items:center;margin:22px 0;overflow:hidden}.cuisine-rail strong{white-space:nowrap}.cuisine-scroll{display:flex;gap:8px;overflow:auto;padding-bottom:3px}.cuisine-pill{white-space:nowrap;background:#fff;border:1px solid var(--ga-line);border-radius:999px;padding:9px 14px;color:#344054}.cuisine-pill.active{background:#0b7f73;color:#fff;border-color:#0b7f73}.location-banner{display:flex;justify-content:space-between;align-items:center;gap:15px;background:linear-gradient(100deg,#e9f8f5,#fff4e9);border:1px solid #d9eee9;border-radius:20px;padding:18px 20px;margin:20px 0}.location-banner p{margin:3px 0 0;color:#667085}.restaurant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.modern-restaurant-card{background:#fff;border:1px solid var(--ga-line);border-radius:20px;overflow:hidden;color:var(--ga-ink);box-shadow:var(--ga-shadow);transition:.18s}.modern-restaurant-card:hover{transform:translateY(-4px);text-decoration:none;box-shadow:0 20px 44px rgba(16,24,40,.12)}.restaurant-media{height:210px;background:#edf2f4;position:relative}.restaurant-media img{width:100%;height:100%;object-fit:cover}.restaurant-placeholder{display:grid;place-items:center;height:100%;font-size:56px;background:linear-gradient(135deg,#dff3ef,#fff0e1)}.media-badges{position:absolute;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;gap:8px}.status-dot,.diet-badge{background:rgba(255,255,255,.95);backdrop-filter:blur(8px);padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.status-dot.is-open{color:#08766c}.status-dot.is-closed{color:#667085}.diet-badge{color:#08766c}.restaurant-body{padding:16px}.restaurant-title{display:flex;justify-content:space-between;gap:10px}.restaurant-title h3{margin:0;font-size:19px}.rating{white-space:nowrap;background:#fff7e8;color:#9a5a00;border-radius:8px;padding:4px 7px;font-size:12px;font-weight:800}.restaurant-meta{display:flex;flex-wrap:wrap;gap:5px;color:#667085;font-size:13px;margin-top:10px}.delivery-ok{margin-top:10px;color:#08766c;font-size:13px;font-weight:700}.empty-discovery{text-align:center;background:#fff;border:1px solid var(--ga-line);border-radius:24px;padding:60px 20px;margin-top:24px}.empty-icon{font-size:44px}.empty-discovery h2{margin:8px 0}.empty-discovery p{color:#667085}@media(max-width:900px){.restaurant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.discovery-head{align-items:flex-start;flex-direction:column}.location-pill{width:100%;text-align:center}.restaurant-grid{grid-template-columns:1fr}.restaurant-media{height:200px}.location-banner{align-items:flex-start;flex-direction:column}.cuisine-rail{align-items:flex-start;flex-direction:column;gap:8px}.quick-chips>*{flex:1 1 auto}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v11 customer account and location polish */
.customer-account-shell{max-width:1240px;margin:36px auto}.ga-account-hero{display:flex;align-items:center;gap:16px;background:linear-gradient(120deg,#eef9f6,#fff7ed);border:1px solid var(--ga-line);border-radius:22px;padding:18px 20px;margin:18px 0 22px}.ga-account-hero>div:nth-child(2){flex:1}.ga-account-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--ga-primary);color:#fff;font-size:22px;font-weight:900}.customer-account-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.address-map{height:280px;border-radius:18px;overflow:hidden;border:1px solid var(--ga-line);margin:12px 0}.address-location-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.address-suggestions{display:grid;gap:6px;margin-top:8px}.address-suggestions button{background:#fff;border:1px solid var(--ga-line);border-radius:12px;padding:11px 13px;text-align:left;cursor:pointer}.address-suggestions button:hover{background:#f5faf9}@media(max-width:900px){.customer-account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.customer-account-grid{grid-template-columns:1fr}.ga-account-hero{align-items:flex-start;flex-wrap:wrap}.ga-account-hero .btn{width:100%}}

/* v13 modern navigation + discovery filter UX */
.ga-mobile-menu-toggle{display:none;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;width:44px;height:44px;padding:9px;cursor:pointer}.ga-mobile-menu-toggle span{display:block;height:2px;background:#fff;margin:5px 3px;border-radius:4px}.card-fav{position:absolute;right:12px;top:48px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);color:#475467;font-size:20px;box-shadow:0 6px 18px rgba(16,24,40,.12)}.mobile-filter-trigger,.mobile-filter-head{display:none}
@media(max-width:760px){
 .ds-header{padding:8px 0}.ds-header .container{position:relative}.ga-mobile-menu-toggle{display:block;margin-left:auto}.ds-header nav{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 8px);background:#0b2545;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:10px;box-shadow:0 20px 45px rgba(7,26,51,.28);max-width:none;flex-direction:column;align-items:stretch;overflow:visible;white-space:normal}.ds-header nav.is-open{display:flex}.ds-header nav a,.ds-header nav form{width:100%;display:block}.ds-header nav a{padding:12px 13px}.ds-header nav .btn{width:100%;margin-top:5px}.ds-header .logo img{height:50px;max-width:190px;object-fit:contain}.discovery-tools{padding:12px}.mobile-filter-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;border:1px solid var(--ga-line);background:#fff;border-radius:13px;padding:11px 13px;margin-top:10px;font-weight:800;color:#344054}.mobile-filter-trigger span{font-size:11px;color:#08766c}.discovery-filter-drawer{display:none}.discovery-filter-drawer.is-open{display:grid;position:fixed;z-index:100;left:12px;right:12px;bottom:12px;margin:0;padding:18px;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(16,24,40,.28);border:1px solid var(--ga-line)}.mobile-filter-head{display:flex;align-items:center;justify-content:space-between;grid-column:1/-1;margin-bottom:4px}.mobile-filter-head button{border:0;background:#f2f4f7;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.quick-chips select,.filter-chip span{width:100%;justify-content:center}.discovery-filter-drawer .btn{width:100%}
}
@media(min-width:761px){.discovery-filter-drawer{display:flex}.mobile-filter-trigger{display:none}}

/* v14 — unified dashboard experience
   Gives customer, provider and Super Admin dashboards the same modern
   marketplace design language and prevents utility classes from falling
   back to unstyled HTML on narrow screens. */
.ga-page{max-width:1240px;margin:36px auto;padding:0 16px}.ga-dashboard-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.ga-dashboard-head h1{margin:4px 0 6px;font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;color:var(--ga-ink)}.ga-eyebrow{font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--ga-primary)}.ga-dashboard-head .meta{margin:0;color:var(--ga-muted)}.ga-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}.ga-stat{background:linear-gradient(145deg,#fff,#f8fbfc);border:1px solid var(--ga-line);border-radius:18px;padding:18px;box-shadow:var(--ga-shadow);min-width:0}.ga-stat .num{font-size:26px;font-weight:900;letter-spacing:-.02em;color:var(--ga-ink);overflow-wrap:anywhere}.ga-stat .label{margin-top:4px;color:var(--ga-muted);font-size:13px}.ga-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ga-dashboard-tile{display:block;background:#fff;border:1px solid var(--ga-line);border-radius:20px;padding:19px;color:var(--ga-ink);box-shadow:var(--ga-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ga-dashboard-tile:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(16,24,40,.11);border-color:#cfe5e0;text-decoration:none}.ga-dashboard-tile .icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#eef8f6;font-size:22px;margin-bottom:12px}.ga-dashboard-tile h3{margin:0 0 5px;font-size:17px}.ga-dashboard-tile p{margin:0;color:var(--ga-muted);font-size:13px;line-height:1.55}.ga-page .empty-discovery{margin-top:0}.ga-page .alert{border-radius:16px}.customer-account-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.ga-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ga-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.ga-page{margin:24px auto;padding:0 12px}.ga-dashboard-head{align-items:flex-start;flex-direction:column}.ga-dashboard-head .btn{width:100%}.ga-stat-grid,.ga-dashboard-grid,.customer-account-grid{grid-template-columns:1fr}.ga-stat{padding:15px}.ga-dashboard-tile{padding:17px}.ga-account-hero{padding:16px}.ga-account-hero .btn{width:100%}}


/* v15 — accessibility, keyboard, touch and reduced-motion polish */
.ga-skip-link{position:fixed;left:12px;top:-60px;z-index:10000;background:#fff;color:var(--ds-navy);border:2px solid var(--ds-teal);border-radius:10px;padding:10px 14px;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.ga-skip-link:focus{top:12px;text-decoration:none}
main:focus{outline:none}
:focus-visible{outline:3px solid rgba(15,155,142,.55);outline-offset:2px}
button,.btn,a,input,select,textarea{touch-action:manipulation}
select,textarea,input[type=number],input[type=date],input[type=time],input[type=datetime-local]{width:100%;padding:10px 12px;border:1px solid var(--ds-border);border-radius:8px;font-size:15px;background:#fff;color:var(--ds-text)}
textarea{min-height:110px;resize:vertical}
button,.btn{min-height:42px}
.ds-header .logo img{height:46px;max-width:210px;object-fit:contain}
@media(max-width:760px){.ds-header .logo img{height:50px;max-width:200px}.ds-header .container{min-height:58px}.ga-mobile-menu-toggle{flex:0 0 44px}.ds-header nav{max-height:calc(100vh - 90px);overflow-y:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.modern-restaurant-card:hover,.ga-dashboard-tile:hover{transform:none}}

.ga-ai-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 16px}.ga-ai-result{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid var(--ga-line);border-radius:15px;background:#fff;color:var(--ga-ink);text-decoration:none;box-shadow:0 8px 24px rgba(16,24,40,.06)}.ga-ai-result:hover{border-color:#b9ded7;transform:translateY(-1px)}.ga-ai-result strong{font-size:14px}.ga-ai-result span{font-size:12px;color:var(--ga-muted);line-height:1.4}.ga-ai-deal{background:linear-gradient(145deg,#fffaf1,#fff)}@media(max-width:640px){.ga-ai-results{grid-template-columns:1fr}}

/* v20 — checkout conversion, clarity and mobile safety */
.ga-checkout-shell{max-width:860px;margin:34px auto;padding:0 16px}.ga-checkout-head{margin-bottom:20px}.ga-checkout-head h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.035em;margin:4px 0 6px}.ga-checkout-card{margin-bottom:16px;padding:20px}.ga-section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.ga-section-title h2{margin:2px 0 0;font-size:20px;letter-spacing:-.02em}.ga-choice-card{flex:1;border:1.5px solid var(--ga-line);border-radius:16px;padding:16px;text-align:center;cursor:pointer;background:#fff;transition:.15s;min-width:0}.ga-choice-card:hover{border-color:#9bd4ca}.ga-choice-card.is-selected{border-color:var(--ga-primary);background:#eef9f6;box-shadow:0 0 0 3px rgba(11,127,115,.08)}.ga-choice-card input{position:absolute;opacity:0}.ga-checkout-select{width:100%;min-height:50px}.ga-secure-pill{display:inline-flex;align-items:center;border-radius:999px;background:#eaf8f4;color:#08766c;padding:7px 10px;font-size:12px;font-weight:800;white-space:nowrap}.ga-small-btn{font-size:13px;padding:9px 12px}.ga-payment-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--ga-line);border-radius:14px;padding:13px;margin:8px 0;background:#fff;cursor:pointer}.ga-payment-option.is-selected{border-color:#79cbbd;background:#f0faf7}.ga-payment-option.is-disabled{cursor:not-allowed;background:#f7f8fa}.ga-payment-option input{margin-top:3px;accent-color:var(--ga-primary)}.ga-total-card{background:linear-gradient(145deg,#fff,#f5fbf9)}.ga-checkout-note{font-size:12px;color:var(--ga-muted);text-align:center;margin:10px 0 0}.ga-place-order{min-height:52px;font-size:16px;font-weight:800}.ga-place-order:disabled{opacity:.65;cursor:not-allowed}@media(max-width:640px){.ga-checkout-shell{margin:22px auto;padding:0 12px}.ga-checkout-card{padding:16px}.ga-section-title{align-items:flex-start}.ga-small-btn{width:auto}.ga-choice-card{padding:13px 8px}.ga-choice-card .meta{font-size:12px}.ga-checkout-head h1{font-size:32px}}

/* v21 final polish: location actions, footer hierarchy and mobile usability */
.ds-footer{border-top:1px solid rgba(255,255,255,.08);padding:56px 0 22px;}
.ds-footer .footer-grid{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr));gap:32px;align-items:start;text-align:left}
.ds-footer .footer-grid>div:first-child{padding-right:20px}
.ds-footer .footer-brand{font-size:24px;font-weight:800;letter-spacing:-.03em;color:#fff;margin-bottom:8px}
.ds-footer .footer-grid p{margin:7px 0;color:#aeb9c8;line-height:1.65}
.ds-footer .footer-grid h4{margin:2px 0 12px;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.ds-footer .footer-grid a{display:block;padding:6px 0;color:#cbd5e1;transition:color .15s ease,transform .15s ease}
.ds-footer .footer-grid a:hover,.ds-footer .footer-grid a:focus-visible{color:#fff;transform:translateX(2px)}
.ds-footer .footer-bottom{margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:#8f9caf;font-size:12px}
.ds-footer .footer-bottom a{display:inline;color:#b8c3d1}
.location-banner{border:1px solid #dce7ee;border-radius:18px;background:linear-gradient(135deg,#fff,#f5fbfa);padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;box-shadow:0 8px 24px rgba(16,24,40,.05)}
.location-pill{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 13px;border:1px solid #dbe4ec;border-radius:999px;background:#fff;text-decoration:none;font-weight:700}
.location-pill span{font-size:12px;color:var(--ga-primary);font-weight:700}
#use-gps[aria-busy="true"],#address-use-location[aria-busy="true"]{cursor:wait;opacity:.8}
@media(max-width:760px){.ds-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.ds-footer .footer-grid>div:first-child{grid-column:1/-1;padding-right:0}.ds-footer .footer-bottom{margin-top:26px}.location-banner{align-items:flex-start;flex-direction:column}.location-banner .btn{width:100%}}
@media(max-width:480px){.ds-footer{padding-top:40px}.ds-footer .footer-grid{grid-template-columns:1fr}.ds-footer .footer-grid>div:first-child{grid-column:auto}.ds-footer .footer-bottom{flex-direction:column;gap:8px}.location-pill{width:100%;justify-content:center}}
