:root.egp-report-open { overflow: hidden; }

.egp-app {
  --egp-red: #b20f24;
  --egp-red-deep: #760716;
  --egp-ink: #1e1f24;
  --egp-muted: #686b73;
  --egp-line: #e4e5e9;
  --egp-surface: #ffffff;
  --egp-soft: #f7f7f9;
  --egp-positive: #276749;
  --egp-warning: #9a3412;
  color: var(--egp-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  max-width: 1080px;
  margin: 32px auto;
  border-radius: 24px;
  background: var(--egp-surface);
  box-shadow: 0 24px 64px rgba(20, 20, 30, .16);
  overflow: hidden;
  border: 1px solid rgba(120,120,140,.12);
}

.egp-app *, .egp-app *::before, .egp-app *::after { box-sizing: border-box; }
.egp-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; }

.egp-hero {
  min-height: 330px;
  position: relative;
  display: flex;
  align-items: flex-end;
  background-image: var(--egp-hero-image), linear-gradient(120deg, #5d0613, #c5162d);
  background-size: cover;
  background-position: center 48%;
  isolation: isolate;
}
.egp-hero__scrim { position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,0,7,.9) 0%,rgba(74,3,15,.78) 46%,rgba(156,12,34,.35) 75%,rgba(130,7,27,.18) 100%);z-index:-1; }
.egp-hero__content { width:min(650px,82%);padding:34px 38px;color:#fff; }
.egp-badges, .egp-chips { display:flex;gap:7px;flex-wrap:wrap; }
.egp-badges span { font-size:10px;line-height:1.2;font-weight:700;letter-spacing:.04em;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px); }
.egp-eyebrow, .egp-kicker { margin:15px 0 5px;font-size:11px!important;line-height:1.3!important;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
.egp-hero h2 { margin:0!important;font-size:clamp(24px,3vw,30px)!important;line-height:1.05!important;font-weight:850!important;letter-spacing:-.03em!important;color:#fff!important;max-width:520px; }
.egp-hero__support { margin:10px 0 14px!important;font-size:14px!important;line-height:1.55!important;color:rgba(255,255,255,.92)!important;max-width:590px; }
.egp-chips span { font-size:11px;line-height:1.2;font-weight:700;padding:6px 9px;border-radius:8px;background:#fff;color:#71101d;box-shadow:0 6px 18px rgba(0,0,0,.14); }

.egp-shell { padding:24px; }
.egp-grid { display:grid;gap:16px; }
.egp-grid--two { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.egp-card { background:var(--egp-surface);border:1px solid var(--egp-line);border-radius:16px;padding:18px;box-shadow:0 8px 22px rgba(20,20,30,.055); }
.egp-card h3 { margin:2px 0 12px!important;font-size:17px!important;line-height:1.3!important;color:var(--egp-ink)!important;letter-spacing:-.01em!important; }
.egp-kicker { color:var(--egp-red);margin-top:0!important; }
.egp-section-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px; }
.egp-section-head--wrap { flex-wrap:wrap; }
.egp-label { display:block;font-size:12px;font-weight:750;color:var(--egp-ink);margin:13px 0 6px; }
.egp-select, .egp-search, .egp-food select { width:100%;min-height:40px;border:1px solid #cfd1d7;border-radius:9px;background:#fff;color:#22252a;font-size:13px;line-height:1.3;padding:8px 10px;outline:none; }
/* Keep native dropdown choices readable even when the site/theme or OS is in dark mode. */
.egp-select, .egp-food select { color-scheme:light!important;-webkit-text-fill-color:#22252a!important;background-color:#fff!important;color:#22252a!important; }
.egp-select option, .egp-food select option { background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important; }
.egp-select option:checked, .egp-food select option:checked { background:#e9eef5!important;color:#111827!important;-webkit-text-fill-color:#111827!important; }
.egp-select:focus, .egp-search:focus, .egp-food select:focus { border-color:var(--egp-red);box-shadow:0 0 0 3px rgba(178,15,36,.11); }
.egp-help { margin:7px 0 0!important;font-size:12px!important;line-height:1.55!important;color:var(--egp-muted)!important; }
.egp-safety-note { margin-top:12px;padding:10px 11px;border-radius:9px;background:#f1f8f4;color:#1f5a42;font-size:12px;line-height:1.5;border:1px solid #cbe7d7; }
.egp-safety-note.is-warning { background:#fff3e9;color:#7c2d12;border-color:#fed7aa; }

.egp-card--result { background:linear-gradient(145deg,#fff8f9,#fff 60%); }
.egp-result-row { display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin:15px 0 10px; }
.egp-result-label { display:block;font-size:11px;color:var(--egp-muted);margin-bottom:4px; }
.egp-result-value { display:block;font-size:28px;line-height:1;font-weight:850;color:var(--egp-red-deep);letter-spacing:-.035em; }
.egp-result-secondary { display:block;font-size:18px;line-height:1.1;font-weight:800;color:var(--egp-ink); }
.egp-meter { height:8px;background:#eeeef2;border-radius:999px;overflow:hidden;margin:12px 0; }
.egp-meter span { display:block;height:100%;width:0;background:linear-gradient(90deg,#e11d48,#991b1b);border-radius:inherit;transition:width .25s ease; }
.egp-result-copy { font-size:13px;line-height:1.55;color:var(--egp-ink);min-height:40px; }
.egp-mini-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px; }
.egp-mini-grid > div { background:#fff;border:1px solid var(--egp-line);border-radius:10px;padding:10px; }
.egp-mini-grid span { display:block;font-size:10px;color:var(--egp-muted); }
.egp-mini-grid strong { display:block;font-size:13px;color:var(--egp-ink);margin-top:3px; }

.egp-food-card { margin-top:16px; }
.egp-search-wrap { flex:0 1 230px;min-width:200px; }
.egp-food-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px; }
.egp-food { border:1px solid var(--egp-line);border-radius:12px;padding:11px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.egp-food:hover { border-color:#c8c9cf;box-shadow:0 6px 16px rgba(20,20,30,.06); }
.egp-food.is-selected { border-color:#d84b60;background:#fff8f9;box-shadow:0 0 0 2px rgba(178,15,36,.08); }
.egp-food__check { display:flex;gap:9px;align-items:flex-start;cursor:pointer; }
.egp-food__check input { position:absolute;opacity:0;pointer-events:none; }
.egp-food__box { width:18px;height:18px;flex:0 0 18px;border:1.5px solid #b7b9c0;border-radius:5px;margin-top:1px;position:relative;background:#fff; }
.egp-food__check input:focus-visible + .egp-food__box { box-shadow:0 0 0 3px rgba(178,15,36,.16); }
.egp-food__check input:checked + .egp-food__box { background:var(--egp-red);border-color:var(--egp-red); }
.egp-food__check input:checked + .egp-food__box::after { content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg); }
.egp-food__main { min-width:0; }
.egp-food__main strong { display:block;font-size:13px;line-height:1.35;color:var(--egp-ink); }
.egp-food__main small { display:block;font-size:11px;line-height:1.4;color:var(--egp-muted);margin-top:3px; }
.egp-food__portion { display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:10px;border-top:1px solid #efeff2;padding-top:9px; }
.egp-food__portion label { font-size:10px;color:var(--egp-muted); }
.egp-food__portion select { min-height:32px;font-size:12px;padding:4px 22px 4px 7px;margin-top:3px; }
.egp-food__portion span { font-size:10px;color:#7b7e86;text-align:right; }
.egp-empty { grid-column:1/-1;font-size:13px;color:var(--egp-muted);padding:16px;text-align:center; }

.egp-next-card { margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fafafa; }
.egp-next-card p { margin:0!important;font-size:13px!important;line-height:1.6!important;color:var(--egp-muted)!important;max-width:720px; }
.egp-actions { display:flex;gap:8px;flex:0 0 auto; }
.egp-btn { appearance:none;border:0;border-radius:9px;min-height:38px;padding:8px 13px;font-size:12px;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease; }
.egp-btn:hover { transform:translateY(-1px); }
.egp-btn--primary { background:var(--egp-red);color:#fff;box-shadow:0 7px 16px rgba(178,15,36,.18); }
.egp-btn--secondary { background:#fff;color:var(--egp-ink);border:1px solid var(--egp-line); }
.egp-source-line { margin:14px 2px 0!important;font-size:11px!important;line-height:1.5!important;color:#7a7d85!important; }

.egp-report-modal[hidden] { display:none!important; }
.egp-report-modal { position:fixed;inset:0;z-index:999999;background:rgba(14,14,18,.82);overflow:auto;padding:72px 18px 28px; }
.egp-report-toolbar { position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:1000000;display:flex;gap:8px;padding:7px;border-radius:12px;background:rgba(255,255,255,.95);box-shadow:0 10px 28px rgba(0,0,0,.22); }
.egp-report-page { width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#17181c;padding:14mm 15mm;box-shadow:0 18px 58px rgba(0,0,0,.3);font-family:Arial,sans-serif; }
.egp-report-head { border-bottom:2px solid #9f1239;padding-bottom:7mm; }
.egp-report-head p { margin:0 0 2mm!important;font-size:8.5pt!important;font-weight:800;letter-spacing:.12em;color:#9f1239!important; }
.egp-report-head h2 { margin:0!important;font-size:20pt!important;line-height:1.1!important;color:#17181c!important; }
.egp-report-head span { display:block;margin-top:2mm;font-size:9.5pt;color:#5c5f66; }
.egp-report-summary { display:grid;grid-template-columns:.9fr 1.4fr 1fr;gap:4mm;margin:7mm 0; }
.egp-report-summary > div { background:#f7f7f8;border:1px solid #dfdfe3;border-radius:3mm;padding:4mm; }
.egp-report-summary span { display:block;font-size:8pt;color:#666; }
.egp-report-summary strong { display:block;margin-top:1.5mm;font-size:11pt;line-height:1.3; }
.egp-report-warning { font-size:9pt;line-height:1.45;background:#fff3e9;border-left:3px solid #c2410c;padding:3mm 4mm;margin-bottom:6mm; }
.egp-report-table { width:100%;border-collapse:collapse;font-size:9pt;line-height:1.35; }
.egp-report-table th { background:#7f1d1d;color:#fff;text-align:left;padding:2.7mm 3mm;border:1px solid #7f1d1d; }
.egp-report-table td { padding:2.5mm 3mm;border:1px solid #d6d7db;vertical-align:top; }
.egp-report-notes { margin-top:7mm;border-top:1px solid #d6d7db;padding-top:5mm; }
.egp-report-notes h3 { margin:0 0 2mm!important;font-size:11pt!important;color:#17181c!important; }
.egp-report-notes p { margin:0 0 2.3mm!important;font-size:9pt!important;line-height:1.45!important;color:#3f4248!important; }
.egp-report-foot { margin-top:6mm;padding-top:4mm;border-top:1px solid #e1e2e6;font-size:7.8pt;line-height:1.4;color:#6b6e75; }

@media (max-width: 820px) {
  .egp-app { margin:20px 0;border-radius:18px; }
  .egp-hero { min-height:300px;background-position:center; }
  .egp-hero__content { width:92%;padding:28px 22px; }
  .egp-hero h2 { font-size:24px!important; }
  .egp-grid--two { grid-template-columns:1fr; }
  .egp-food-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .egp-next-card { align-items:flex-start;flex-direction:column; }
  .egp-actions { width:100%; }
  .egp-actions .egp-btn { flex:1; }
}

@media (max-width: 540px) {
  .egp-shell { padding:14px; }
  .egp-card { padding:15px; }
  .egp-food-grid { grid-template-columns:1fr; }
  .egp-search-wrap { flex-basis:100%;min-width:100%; }
  .egp-select, .egp-search { font-size:16px; }
  .egp-result-value { font-size:24px; }
  .egp-result-secondary { font-size:16px; }
  .egp-result-row { grid-template-columns:1fr 1fr; }
  .egp-mini-grid { grid-template-columns:1fr; }
  .egp-report-modal { padding-left:0;padding-right:0; }
  .egp-report-page { width:210mm;transform-origin:top left; }
}

@media (prefers-color-scheme: dark) {
  .egp-app { --egp-ink:#f3f4f6;--egp-muted:#b6b8c0;--egp-line:#393b43;--egp-surface:#1f2026;--egp-soft:#292a31;--egp-red:#ef4764;--egp-red-deep:#ff8799;background:var(--egp-surface); }
  .egp-card, .egp-card--result, .egp-food, .egp-mini-grid > div, .egp-next-card { background:#24252b; }
  .egp-food.is-selected { background:#321f25;border-color:#d84b60; }
  .egp-search { background:#17181c;color:#f7f7f8;border-color:#4b4d56;color-scheme:dark; }
  .egp-select, .egp-food select { background:#fff!important;color:#111827!important;border-color:#cfd1d7!important;color-scheme:light!important;-webkit-text-fill-color:#111827!important; }
  .egp-select option, .egp-food select option { background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important; }
  .egp-btn--secondary { background:#292a31;color:#f7f7f8;border-color:#43454d; }
  .egp-meter { background:#3a3b43; }
  .egp-safety-note { background:#183326;color:#d4f2df;border-color:#28543d; }
  .egp-safety-note.is-warning { background:#3a281e;color:#ffd9bd;border-color:#6b3b22; }
  .egp-source-line { color:#aeb0b8!important; }
}

@page { size: A4 portrait; margin: 0; }
@media print {
  html, body { margin:0!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
  body * { visibility:hidden!important; }
  [data-egp-report-modal], [data-egp-report-modal] * { visibility:visible!important; }
  [data-egp-report-modal] { display:block!important;position:absolute!important;inset:0!important;padding:0!important;background:#fff!important;overflow:visible!important; }
  [data-egp-report-controls] { display:none!important; }
  [data-egp-report-page] { position:absolute!important;left:0!important;top:0!important;width:210mm!important;height:297mm!important;min-height:297mm!important;margin:0!important;padding:14mm 15mm!important;box-shadow:none!important;overflow:hidden!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
}
