:root {
  --ink: #0d1635;
  --ink-2: #1b2748;
  --muted: #6d7892;
  --paper: #f7f9fc;
  --card: #ffffff;
  --line: #e7eaf1;
  --blue: #2582ff;
  --cyan: #27c7d8;
  --green: #54d63a;
  --purple: #8a45ff;
  --red: #d8324e;
  --amber: #d78b14;
  --shadow: 0 18px 50px rgba(13, 22, 53, .10);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--paper); }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 20% 0%, #edf5ff 0, transparent 34%), var(--paper); min-height: 100vh; }
button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.auth-shell { min-height: 100svh; display: grid; place-items: center; padding: 28px 20px; position: relative; overflow: hidden; background: #0d1635; }
.auth-backdrop { position: absolute; inset: -20%; background: radial-gradient(circle at 30% 30%, rgba(37,130,255,.42), transparent 28%), radial-gradient(circle at 72% 45%, rgba(39,199,216,.28), transparent 25%), radial-gradient(circle at 50% 85%, rgba(138,69,255,.25), transparent 28%); filter: blur(20px); }
.auth-panel { width: min(100%, 430px); position: relative; z-index: 1; text-align: center; color: white; }
.auth-icon { width: 92px; height: 92px; border-radius: 22px; box-shadow: 0 22px 55px rgba(0,0,0,.35); margin-bottom: 18px; }
.auth-logo { display: block; width: min(310px, 88%); max-height: 84px; object-fit: contain; margin: 0 auto 4px; filter: drop-shadow(0 8px 24px rgba(0,0,0,.15)); }
.tagline { margin: 0 0 28px; color: #c9d6ef; letter-spacing: .02em; }
.auth-card { text-align: left; padding: 24px; border-radius: 26px; background: rgba(255,255,255,.97); color: var(--ink); box-shadow: 0 30px 80px rgba(0,0,0,.28); }
.auth-card h1 { margin: 7px 0 10px; font-size: 30px; letter-spacing: -.035em; }
.auth-card p { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }
.private-note { color: #9eabc7; font-size: 12px; line-height: 1.5; margin: 18px 10px 0; }
.eyebrow { display: block; font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); }
.button { border: 0; border-radius: 16px; min-height: 52px; padding: 0 18px; font-weight: 800; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease; }
.button:active { transform: scale(.985); }
.button:disabled { opacity: .62; cursor: wait; }
.button-primary { color: white; background: linear-gradient(115deg, #277cff, #26b9d8 58%, #50cf47); box-shadow: 0 12px 28px rgba(37,130,255,.25); }
.button-secondary { background: #edf3ff; color: #1d5cc3; }
.button-ghost { background: transparent; border: 1px solid var(--line); color: var(--muted); }
.button-wide { width: 100%; }
.button-icon { font-size: 20px; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,.45); border-top-color: white; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.app-shell { min-height: 100svh; padding-bottom: calc(84px + var(--safe-bottom)); }
.topbar { height: 70px; display: flex; align-items: center; justify-content: space-between; padding: env(safe-area-inset-top, 0px) 18px 0; max-width: 720px; margin: 0 auto; }
.brand-mini { display: flex; align-items: center; gap: 10px; font-weight: 900; letter-spacing: -.02em; }
.brand-mini img { width: 35px; height: 35px; border-radius: 10px; }
.avatar-button { width: 38px; overflow: hidden; padding: 0; height: 38px; border-radius: 50%; border: 1px solid #dce1ec; background: white; box-shadow: 0 6px 20px rgba(13,22,53,.08); font-weight: 900; color: var(--ink); }
.view-stack { width: min(100%, 720px); margin: 0 auto; padding: 10px 16px 26px; }
.view { animation: viewIn .25s ease both; }
@keyframes viewIn { from { opacity: 0; transform: translateY(5px); } }
.welcome-block { padding: 18px 5px 22px; }
.welcome-block h1, .page-heading h1 { margin: 5px 0 8px; font-size: clamp(32px, 8vw, 44px); letter-spacing: -.055em; line-height: 1.04; }
.welcome-block p, .page-heading p { color: var(--muted); line-height: 1.55; margin: 0; max-width: 580px; }
.scan-hero { width: 100%; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border: 0; border-radius: 28px; padding: 17px; text-align: left; color: white; background: linear-gradient(135deg, #111b3d 0%, #172654 52%, #113e62 100%); box-shadow: 0 20px 45px rgba(13,22,53,.22); cursor: pointer; overflow: hidden; position: relative; }
.scan-hero::after { content: ""; position: absolute; width: 180px; height: 180px; border-radius: 50%; right: -70px; top: -110px; background: radial-gradient(circle, rgba(65,214,199,.35), transparent 65%); }
.scan-hero-icon { width: 70px; height: 70px; border-radius: 19px; overflow: hidden; box-shadow: 0 12px 28px rgba(0,0,0,.22); }
.scan-hero-icon img { width: 100%; height: 100%; display: block; }
.scan-hero-copy { display: flex; flex-direction: column; gap: 4px; z-index: 1; }
.scan-hero-copy strong { font-size: 21px; letter-spacing: -.025em; }
.scan-hero-copy small { color: #b8c6e9; }
.scan-hero-arrow { font-size: 27px; z-index: 1; }
.profile-card, .future-card, .manual-card, .unknown-card, .profile-editor-card, .add-rule-card, .security-card, .product-card, .ingredients-card { background: rgba(255,255,255,.94); border: 1px solid rgba(224,229,240,.9); border-radius: 24px; box-shadow: 0 12px 34px rgba(13,22,53,.06); }
.profile-card { margin-top: 18px; padding: 20px; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.section-heading h2 { margin: 4px 0 0; font-size: 21px; letter-spacing: -.025em; }
.text-button { border: 0; background: transparent; color: var(--blue); font-weight: 800; padding: 8px; }
.profile-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.profile-chip { border-radius: 999px; padding: 8px 11px; font-size: 13px; font-weight: 800; border: 1px solid transparent; }
.chip-avoid { background: #fff0f2; color: #b72741; border-color: #ffd6dc; }
.chip-caution { background: #fff7e6; color: #96610a; border-color: #ffe5ad; }
.chip-dislike { background: #f4efff; color: #6f3fc0; border-color: #dfd0ff; }
.future-card { margin-top: 18px; padding: 18px; display: flex; gap: 14px; align-items: flex-start; }
.future-icon { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 14px; background: #eafff6; color: #169769; display: grid; place-items: center; font-size: 22px; }
.future-card h3 { margin: 4px 0 5px; font-size: 17px; }
.future-card p { margin: 0; color: var(--muted); line-height: 1.45; font-size: 14px; }
.page-heading { padding: 18px 5px 20px; }
.scanner-shell { height: min(66svh, 560px); min-height: 380px; aspect-ratio: 3 / 4; background: #091027; border-radius: 28px; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.scanner-shell video { width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.scanner-shell.live video { opacity: 1; }
.scanner-shell::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 100vmax rgba(5,10,24,.28); pointer-events: none; }
.scan-frame { position: absolute; width: min(82%, 380px); aspect-ratio: 1.15; left: 50%; top: 48%; transform: translate(-50%,-50%); z-index: 2; }
.scan-frame i { position: absolute; width: 45px; height: 45px; border-style: solid; border-width: 4px; }
.scan-frame i:nth-child(1) { left: 0; top: 0; border-color: #45df54 transparent transparent #45df54; border-radius: 14px 0 0; }
.scan-frame i:nth-child(2) { right: 0; top: 0; border-color: #35d2e8 #35d2e8 transparent transparent; border-radius: 0 14px 0 0; }
.scan-frame i:nth-child(3) { left: 0; bottom: 0; border-color: transparent transparent #2b83ff #2b83ff; border-radius: 0 0 0 14px; }
.scan-frame i:nth-child(4) { right: 0; bottom: 0; border-color: transparent #9d50ff #9d50ff transparent; border-radius: 0 0 14px; }
.scan-line { position: absolute; left: 10px; right: 10px; height: 2px; top: 15%; background: linear-gradient(90deg, transparent, #65e4ff 20%, white 50%, #9263ff 80%, transparent); box-shadow: 0 0 16px #6d9cff; animation: scannerLine 2.2s ease-in-out infinite alternate; }
@keyframes scannerLine { to { top: 84%; } }
.camera-badge { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); z-index: 3; white-space: nowrap; color: white; background: rgba(8,15,36,.65); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.18); padding: 8px 12px; border-radius: 999px; font-size: 11px; }
.scanner-torch { position: absolute; z-index: 4; right: 14px; top: 14px; min-height: 44px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(8,15,36,.70); color: white; backdrop-filter: blur(10px); padding: 8px 12px; display: inline-flex; align-items: center; gap: 7px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.scanner-torch[hidden] { display: none; }
.scanner-torch.active { background: rgba(255,244,184,.94); color: #342800; border-color: rgba(255,239,138,.95); }
@media (orientation: landscape) {
  .scanner-shell { height: min(72svh, 520px); min-height: 300px; aspect-ratio: 16 / 9; }
  .scan-frame { width: min(62%, 460px); aspect-ratio: 1.8; }
}
@media (orientation: portrait) {
  .scanner-shell { aspect-ratio: 3 / 4; }
  .scan-frame { width: min(84%, 390px); aspect-ratio: 1.05; }
}
.manual-card { margin-top: 14px; padding: 16px; }
.manual-card label { font-size: 12px; font-weight: 800; color: var(--muted); }
.manual-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 8px; }
.manual-row input, .add-rule-card input, .add-rule-card select { min-width: 0; width: 100%; min-height: 50px; border: 1px solid #dce2ee; border-radius: 14px; background: #fff; padding: 0 14px; outline: none; color: var(--ink); }
.manual-row input:focus, .add-rule-card input:focus, .add-rule-card select:focus { border-color: #6ea6ff; box-shadow: 0 0 0 4px rgba(37,130,255,.1); }
.unknown-card { margin-top: 12px; padding: 17px; border-color: #ffe4ad; background: #fffaf0; }
.unknown-card strong { color: #8a5b0a; }
.unknown-card p { margin: 6px 0 0; color: #8c7550; font-size: 14px; }
.verdict { border-radius: 28px; padding: 22px; color: white; display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; box-shadow: var(--shadow); }
.verdict-icon { width: 62px; height: 62px; display: grid; place-items: center; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.23); border-radius: 20px; font-size: 34px; font-weight: 900; }
.verdict .eyebrow { color: rgba(255,255,255,.68); }
.verdict h2 { margin: 4px 0 4px; font-size: 27px; letter-spacing: -.035em; }
.verdict p { margin: 0; color: rgba(255,255,255,.82); line-height: 1.42; font-size: 14px; }
.verdict-good { background: linear-gradient(135deg,#168d5c,#32b76e); }
.verdict-caution { background: linear-gradient(135deg,#b76c0f,#e29a2a); }
.verdict-avoid { background: linear-gradient(135deg,#ad263d,#df4055); }
.verdict-dislike { background: linear-gradient(135deg,#6943ab,#9257d8); }
.verdict-unknown { background: linear-gradient(135deg,#536078,#75819a); }
.product-card { margin-top: 14px; padding: 14px; display: grid; grid-template-columns: 88px 1fr; gap: 15px; align-items: center; }
.product-image, .product-placeholder { width: 88px; height: 88px; object-fit: contain; border-radius: 17px; background: #f3f5f9; }
.product-placeholder { display: grid; place-items: center; color: #a0abc0; font-size: 32px; }
.product-copy h3 { margin: 4px 0 5px; font-size: 20px; letter-spacing: -.025em; }
.product-copy p { margin: 0; color: var(--muted); font-size: 13px; }
.finding-list { margin: 20px 2px; }
.finding-list h3 { font-size: 16px; margin-bottom: 10px; }
.finding { display: grid; grid-template-columns: 12px 1fr; gap: 10px; padding: 12px 2px; border-bottom: 1px solid var(--line); }
.finding-dot { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: #999; }
.finding-avoid .finding-dot { background: var(--red); }
.finding-caution .finding-dot { background: var(--amber); }
.finding-dislike .finding-dot { background: var(--purple); }
.finding p { margin: 3px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.ingredients-card { padding: 0 17px; }
.ingredients-card summary { cursor: pointer; padding: 17px 0; font-weight: 800; }
.ingredients-card p { color: var(--muted); line-height: 1.55; font-size: 13px; }
.data-note { color: #8c96aa; font-size: 11px; line-height: 1.5; padding: 10px 4px; }
.profile-editor-card { padding: 6px 16px; }
.rule-row { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.rule-row:last-child { border-bottom: 0; }
.rule-toggle { width: 42px; height: 42px; border-radius: 14px; border: 1px solid #dfe4ee; background: #f5f7fb; color: #a0a9bb; font-weight: 900; font-size: 20px; }
.rule-toggle.on { color: white; background: linear-gradient(135deg,#277cff,#27c7d8); border-color: transparent; }
.rule-copy { display: flex; flex-direction: column; gap: 3px; }
.rule-copy strong { font-size: 15px; }
.rule-copy span { color: var(--muted); font-size: 11px; text-transform: capitalize; }
.icon-button { width: 34px; height: 34px; border: 0; background: transparent; color: #a1aabc; font-size: 24px; }
.add-rule-card, .security-card { margin-top: 14px; padding: 18px; }
.add-rule-card h2 { margin: 0 0 14px; font-size: 20px; }
.add-rule-card label { display: block; font-size: 12px; font-weight: 800; color: var(--muted); margin-bottom: 13px; }
.add-rule-card input, .add-rule-card select { display: block; margin-top: 7px; color: var(--ink); font-weight: 500; }
.security-key-row { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.security-key-copy { min-width: 0; }
.security-key-remove { border: 1px solid var(--line); background: transparent; color: #b4233d; border-radius: 10px; padding: 7px 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.security-key-remove:hover { background: #fff0f3; }
.security-key-icon { width: 40px; height: 40px; border-radius: 13px; background: #edf5ff; color: var(--blue); display: grid; place-items: center; font-size: 20px; }
.security-key-row div:last-child { display: flex; flex-direction: column; gap: 2px; }
.security-key-row span { font-size: 11px; color: var(--muted); }
.security-card .button { margin-top: 14px; }
.security-help { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 12px 2px 0; }
.muted { color: var(--muted); font-size: 13px; }
.bottom-nav { position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; margin-inline: auto; width: min(100%, 720px); height: calc(70px + var(--safe-bottom)); padding: 8px 18px var(--safe-bottom); background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border-top: 1px solid rgba(220,226,237,.9); display: grid; grid-template-columns: 1fr 1fr 1fr; }
.bottom-nav button { border: 0; background: transparent; color: #9aa4b8; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-weight: 800; }
.bottom-nav button span { font-size: 22px; line-height: 1; }
.bottom-nav button small { font-size: 10px; }
.bottom-nav button.active { color: var(--blue); }
.bottom-nav .nav-scan span { width: 44px; height: 34px; border-radius: 14px; display: grid; place-items: center; background: var(--ink); color: white; }
.toasts { position: fixed; z-index: 100; top: calc(12px + env(safe-area-inset-top, 0px)); left: 50%; transform: translateX(-50%); width: min(calc(100% - 24px), 430px); pointer-events: none; display: grid; gap: 8px; }
.toast { transform: translateY(-12px); opacity: 0; transition: .2s ease; background: #131d3a; color: white; border-radius: 14px; padding: 12px 14px; box-shadow: 0 12px 30px rgba(0,0,0,.22); font-size: 13px; }
.toast.show { transform: translateY(0); opacity: 1; }
.toast-error { background: #a92840; }
.toast-success { background: #187f58; }
@media (min-width: 700px) {
  .topbar { padding-left: 24px; padding-right: 24px; }
  .view-stack { padding-left: 24px; padding-right: 24px; }
  .scanner-shell { min-height: 520px; }
}
@media (display-mode: standalone) {
  .topbar { margin-top: max(4px, env(safe-area-inset-top)); }
}

/* Language switcher */
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.language-switcher { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; padding: 4px; border: 1px solid rgba(214,221,234,.95); background: rgba(255,255,255,.88); border-radius: 16px; box-shadow: 0 5px 18px rgba(13,22,53,.05); }
.language-switcher button { min-width: 37px; height: 34px; border: 0; border-radius: 11px; background: transparent; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: var(--muted); font-weight: 900; cursor: pointer; transition: .16s ease; }
.language-switcher button:hover { background: #f1f5fb; }
.language-switcher button.active { background: #e7f1ff; color: #1667d8; box-shadow: inset 0 0 0 1px rgba(37,130,255,.12); }
.flag-icon { width: 22px; height: 15px; object-fit: cover; border-radius: 3px; box-shadow: 0 0 0 1px rgba(13,22,53,.10); display: block; flex: 0 0 auto; }
.language-switcher .language-name { font-size: 9px; letter-spacing: .04em; }
.auth-language-row { display: flex; justify-content: center; margin: -6px 0 18px; }
.language-switcher-dark { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); box-shadow: none; }
.language-switcher-dark button { color: #c9d3eb; min-width: 76px; }
.language-switcher-dark button:hover { background: rgba(255,255,255,.08); }
.language-switcher-dark button.active { background: rgba(82,151,255,.24); color: white; box-shadow: inset 0 0 0 1px rgba(111,173,255,.26); }
.language-switcher-dark .language-name { font-size: 11px; }
.ingredients-original-label { padding-top: 10px; border-top: 1px solid var(--line); margin-top: 14px; }
@media (max-width: 520px) {
  .topbar { gap: 8px; }
  .brand-mini span { display: none; }
  .topbar-actions { gap: 6px; }
  .language-switcher { gap: 2px; padding: 3px; }
  .language-switcher button { min-width: 34px; width: 34px; padding: 0; }
  .language-switcher .language-name { display: none; }
  .language-switcher-dark button { width: auto; min-width: 72px; padding: 0 7px; }
  .language-switcher-dark .language-name { display: inline; }
}

/* My Decode 0.2 — cleaner wordmark, household profiles and scan history */
.auth-wordmark { margin: 2px auto 4px; font-size: clamp(34px, 9vw, 46px); font-weight: 500; letter-spacing: -.055em; line-height: 1; color: #fff; }
.auth-wordmark strong { font-weight: 900; }
.brand-mini span { font-weight: 600; font-size: 16px; letter-spacing: -.035em; white-space: nowrap; }
.brand-mini strong { font-weight: 900; }
.auth-card + .auth-card { margin-top: 12px; }
.auth-form { display: grid; gap: 12px; }
.auth-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; }
.auth-form input, .invite-result input { width: 100%; min-height: 50px; border: 1px solid #dce2ee; border-radius: 14px; background: #fff; padding: 0 14px; outline: none; color: var(--ink); }
.auth-form input:focus, .invite-result input:focus { border-color: #6ea6ff; box-shadow: 0 0 0 4px rgba(37,130,255,.1); }
.auth-small { margin: 12px 0 0 !important; font-size: 11px; color: #8995ad !important; }

.family-summary-card, .history-preview-card, .family-card { background: rgba(255,255,255,.94); border: 1px solid rgba(224,229,240,.9); border-radius: 24px; box-shadow: 0 12px 34px rgba(13,22,53,.06); margin-top: 18px; padding: 20px; }
.card-copy { color: var(--muted); line-height: 1.5; font-size: 13px; margin: 10px 0 14px; }
.member-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.member-pill { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 6px 10px 6px 6px; background: #f1f5fb; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.member-pill b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: white; color: var(--blue); box-shadow: 0 2px 8px rgba(13,22,53,.08); }
.household-members { margin: 4px 0 14px; }
.household-member-row { display: grid; grid-template-columns: auto 1fr; gap: 11px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.household-member-row:last-child { border-bottom: 0; }
.household-avatar { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg,#edf5ff,#effff8); color: #176bd8; font-weight: 900; }
.household-member-row div { display: flex; flex-direction: column; gap: 2px; }
.household-member-row span:last-child { color: var(--muted); font-size: 11px; }
.invite-result { margin-top: 14px; padding: 14px; border-radius: 18px; background: #f6f8fc; border: 1px solid var(--line); }
.invite-result label { display: grid; gap: 6px; font-size: 11px; color: var(--muted); font-weight: 800; }
.invite-result input { min-height: 44px; margin-bottom: 9px; font-size: 11px; }
.invite-result p { color: var(--muted); font-size: 11px; line-height: 1.45; margin: 9px 2px 0; }

.people-result-list { margin: 20px 2px; }
.people-result-list > h3 { font-size: 17px; margin: 0 0 10px; }
.person-result { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 18px; margin-bottom: 9px; border: 1px solid var(--line); background: white; }
.person-result-avatar { width: 39px; height: 39px; border-radius: 13px; display: grid; place-items: center; font-weight: 900; background: #edf3ff; color: #256fd9; }
.person-result strong { display: block; font-size: 14px; line-height: 1.3; }
.person-result p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.person-result-avoid { background: #fff6f7; border-color: #ffd7dd; }
.person-result-avoid .person-result-avatar { background: #ffe8ec; color: #b4233d; }
.person-result-caution { background: #fffbf2; border-color: #ffe7b8; }
.person-result-caution .person-result-avatar { background: #fff0cf; color: #9b640a; }
.person-result-dislike { background: #faf7ff; border-color: #e8dbff; }
.person-result-dislike .person-result-avatar { background: #efe6ff; color: #7144bd; }
.person-result-good { background: #f5fff9; border-color: #d4f4e1; }
.person-result-good .person-result-avatar { background: #e1f8eb; color: #168458; }
.person-result-unknown .person-result-avatar { background: #edf0f5; color: #657089; }

.history-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.danger-text { color: #b52c43; margin-top: 16px; }
.history-list, .history-mini-list { display: grid; gap: 9px; }
.history-mini-list { margin-top: 14px; }
.history-item { width: 100%; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; gap: 11px; align-items: center; border: 1px solid var(--line); background: rgba(255,255,255,.95); border-radius: 18px; padding: 10px; text-align: left; color: var(--ink); cursor: pointer; }
.history-item img, .history-placeholder { width: 58px; height: 58px; border-radius: 13px; object-fit: contain; background: #f2f4f8; }
.history-placeholder { display: grid; place-items: center; color: #a0abc0; font-size: 22px; }
.history-item-copy { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.history-item-copy strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
.history-item-copy small, .history-item-copy time { color: var(--muted); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.history-status { border-radius: 999px; padding: 6px 8px; font-size: 9px; font-weight: 900; white-space: nowrap; }
.history-status-good { background: #e6f8ee; color: #187d57; }
.history-status-caution { background: #fff3d8; color: #99610a; }
.history-status-avoid { background: #ffe9ed; color: #b4243d; }
.history-status-dislike { background: #f0e7ff; color: #7240bf; }
.history-status-unknown { background: #edf0f5; color: #68748a; }
.history-item-compact { grid-template-columns: 46px minmax(0,1fr) auto; padding: 8px; }
.history-item-compact img, .history-item-compact .history-placeholder { width: 46px; height: 46px; border-radius: 11px; }
.empty-state { text-align: center; color: #a1aabc; border: 1px dashed #d9dfe9; border-radius: 22px; padding: 36px 20px; font-size: 28px; }
.empty-state p { color: var(--muted); font-size: 13px; margin: 8px 0 0; }

.bottom-nav { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 520px) {
  .brand-mini span { display: none; }
  .brand-mini { gap: 7px; flex: 0 0 auto; }
  .brand-mini img { width: 32px; height: 32px; }
  .topbar-actions { gap: 5px; }
  .language-switcher button { width: 30px; min-width: 30px; height: 31px; }
  .flag-icon { width: 21px; height: 14px; }
  .avatar-button { width: 35px; height: 35px; }
  .history-item { grid-template-columns: 52px minmax(0,1fr); }
  .history-item img, .history-placeholder { width: 52px; height: 52px; }
  .history-status { grid-column: 2; justify-self: start; margin-top: 2px; }
  .history-item-compact { grid-template-columns: 44px minmax(0,1fr) auto; }
  .history-item-compact img, .history-item-compact .history-placeholder { width: 44px; height: 44px; }
  .history-item-compact .history-status { grid-column: auto; justify-self: auto; }
  .bottom-nav { padding-left: 8px; padding-right: 8px; }
}

@media (max-width: 390px) {
  .topbar { padding-left: 12px; padding-right: 12px; }
  .topbar-actions { gap: 4px; }
  .language-switcher { padding: 2px; gap: 1px; }
  .language-switcher button { width: 29px; min-width: 29px; height: 30px; }
  .flag-icon { width: 20px; height: 13px; }
}

.admin-card { background: linear-gradient(180deg, rgba(248,251,255,.98), rgba(255,255,255,.96)); border: 1px solid #dce7f7; border-radius: 24px; box-shadow: 0 12px 34px rgba(13,22,53,.06); margin-top: 18px; padding: 20px; }
.admin-invite-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.admin-invite-form label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 800; }
.admin-invite-form input, .admin-invite-form select, .admin-invite-result input { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #dce2ee; border-radius: 14px; background: white; color: var(--ink); padding: 0 13px; outline: none; }
.admin-invite-form input:focus, .admin-invite-form select:focus, .admin-invite-result input:focus { border-color: #6ea6ff; box-shadow: 0 0 0 4px rgba(37,130,255,.1); }
.admin-invite-form .button { grid-column: 1 / -1; }
.admin-invite-result { margin-top: 14px; padding: 14px; border-radius: 18px; background: #eef6ff; border: 1px solid #d7e8ff; display: grid; gap: 8px; }
.admin-invite-result[hidden] { display: none; }
.admin-invite-result label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }
.admin-code-input { font-size: 20px; font-weight: 900; letter-spacing: .14em; text-align: center; color: #175fbe !important; }
.admin-subsection { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.admin-subsection h3 { margin: 0 0 9px; font-size: 15px; }
.admin-list-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.admin-list-row:last-child { border-bottom: 0; }
.admin-list-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.admin-list-main strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
.admin-list-main span { color: var(--muted); font-size: 10px; line-height: 1.35; }
.admin-status { border-radius: 999px; padding: 5px 8px; font-size: 9px; font-weight: 900; }
.admin-status-active { background: #e6f8ee; color: #187d57; }
.admin-status-used { background: #eaf2ff; color: #2867ba; }
.admin-status-expired, .admin-status-revoked { background: #edf0f5; color: #68748a; }
.admin-revoke { margin: 0; padding: 4px; font-size: 10px; }
.admin-user-row { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.admin-user-row:last-child { border-bottom: 0; }
.admin-user-row > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.admin-user-row strong { font-size: 13px; }
.admin-user-row span:last-child { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }

@media (max-width: 520px) {
  .invite-code-form { grid-template-columns: 1fr; }
  .admin-invite-form { grid-template-columns: 1fr; }
  .admin-invite-form .button { grid-column: auto; }
  .admin-list-row { grid-template-columns: minmax(0,1fr) auto; }
  .admin-revoke { grid-column: 2; justify-self: end; }
}

.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:rgba(148,163,184,.25);flex:1}.otp-form{margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.2)}

.app-version { text-align:center; margin:22px 0 84px; color:#9aa4b8; font-size:11px; font-weight:700; letter-spacing:.02em; }

.connections-card{margin-top:26px;padding:22px;border:1px solid rgba(224,229,240,.9);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(13,22,53,.06)}.connections-card .card-copy{margin-bottom:20px}.connection-group{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.connection-group h3{margin:0 0 10px;font-size:13px;color:var(--muted)}.connection-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:14px 0;border-bottom:1px solid var(--line)}.connection-row:last-child{border-bottom:0}.connection-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.connection-copy span{font-size:11px;line-height:1.45;color:var(--muted)}.connection-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.connection-actions button{min-height:38px;border:1px solid var(--line);background:white;border-radius:11px;padding:8px 11px;font:inherit;font-size:11px;font-weight:800;color:var(--ink)}.connection-actions button.danger{color:#b4233d}.connection-actions button.primary{background:#edf5ff;color:var(--blue)}

.avatar-button img { width:100%; height:100%; object-fit:cover; display:block; }
.profile-photo-card { margin:0 0 18px; padding:18px; border:1px solid rgba(224,229,240,.9); border-radius:24px; background:rgba(255,255,255,.94); display:flex; align-items:center; gap:18px; box-shadow:0 12px 34px rgba(13,22,53,.06); }
.profile-photo-preview { width:88px; height:88px; flex:0 0 88px; border-radius:50%; overflow:hidden; background:linear-gradient(145deg,#edf1fa,#dfe7f7); display:grid; place-items:center; font-size:30px; font-weight:900; color:var(--ink); border:3px solid white; box-shadow:0 8px 24px rgba(13,22,53,.12); }
.profile-photo-preview img,.household-avatar img,.pill-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.profile-photo-copy { min-width:0; flex:1; }.profile-photo-copy h2 { margin:0 0 5px; }.profile-photo-copy p { margin:0 0 12px; color:var(--muted); }
.profile-photo-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.household-avatar.has-image,.pill-avatar.has-image { overflow:hidden; padding:0; }
.pill-avatar { width:26px; height:26px; border-radius:50%; overflow:hidden; display:inline-grid; place-items:center; }
.avatar-editor { border:0; padding:0; border-radius:26px; width:min(92vw,440px); box-shadow:0 30px 90px rgba(8,15,36,.35); }
.avatar-editor::backdrop { background:rgba(8,15,36,.66); backdrop-filter:blur(5px); }
.avatar-editor-card { padding:20px; display:grid; gap:15px; }
.avatar-editor-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.avatar-editor-heading h2 { margin:2px 0 0; }
.avatar-editor-close { border:0; background:#eef2f8; border-radius:50%; width:38px; height:38px; font-size:25px; cursor:pointer; }
.avatar-crop-stage { width:min(78vw,320px); aspect-ratio:1; margin:auto; border-radius:50%; overflow:hidden; background:#111827; box-shadow:0 0 0 5px #eef2f8; }
.avatar-crop-stage canvas { width:100%; height:100%; display:block; }
.avatar-editor-card label { display:grid; gap:6px; font-size:13px; font-weight:800; }.avatar-editor-card input[type=range] { width:100%; }
@media (max-width:560px) { .profile-photo-card { align-items:flex-start; }.profile-photo-preview { width:72px; height:72px; flex-basis:72px; } }

.scanner-debug{position:absolute;z-index:5;left:14px;right:14px;bottom:54px;padding:8px 10px;border-radius:12px;background:rgba(4,9,24,.78);color:#fff;font-size:11px;line-height:1.35;backdrop-filter:blur(8px);word-break:break-word}.scanner-debug[hidden]{display:none}

.terms-box{padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fbff}.terms-box p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.45}.terms-check,.setting-toggle{display:flex;align-items:flex-start;gap:10px}.terms-check input,.setting-toggle input{margin-top:3px;accent-color:var(--blue)}.safety-settings-card h2{margin:0 0 14px}.safety-settings-card h3{margin:18px 0 10px}.setting-toggle{padding:10px 0;border-bottom:1px solid var(--line)}.info-module{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff}.info-module h3{margin:0 0 9px}.info-module p{color:var(--muted)}.nutrition-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nutrition-grid span{display:flex;flex-direction:column;padding:12px;border-radius:14px;background:#f6f8fb}.nutrition-grid strong{font-size:20px}.nutrition-grid small{color:var(--muted);margin-top:4px}.safety-banner{padding:13px 14px;border-radius:14px;background:#fff7e8;border:1px solid #f1d9a9;font-weight:700;line-height:1.4}.legal-dialog{border:0;padding:0;background:transparent;max-width:min(92vw,620px)}.legal-dialog::backdrop{background:rgba(7,18,42,.55);backdrop-filter:blur(3px)}.legal-dialog-card{position:relative;background:white;border-radius:22px;padding:24px;max-height:82vh;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.24)}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:28px}.install-steps{display:grid;grid-template-columns:1fr 1fr;gap:12px}.install-step{padding:12px;border:1px solid var(--line);border-radius:16px}.phone-illo{height:150px;border:5px solid #17213b;border-radius:24px;background:linear-gradient(160deg,#eaf2ff,#fff);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;font-weight:800}.phone-illo b{font-size:30px;color:var(--blue)}@media(max-width:600px){.install-steps{grid-template-columns:1fr}.legal-dialog-card{padding:20px}}

.install-guide-image{display:block;width:100%;max-height:180px;object-fit:contain;border-radius:14px;background:#f6f9fd}.support-card{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:22px;background:#fff;display:grid;gap:10px}.module-tags{display:flex;flex-wrap:wrap;gap:6px}.module-tags span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef4ff;color:#285f9f;font-size:11px;font-weight:800}.member-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.member-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 9px;font:inherit;font-size:11px;font-weight:800}.member-actions button.danger{color:#b4233d}.household-member-row.is-paused{opacity:.62}.share-member-check{display:block;margin:7px 0}.share-member-check>span{display:flex;align-items:center;gap:9px}.share-member-check input{margin-right:8px}.share-select-label{font-size:12px;color:var(--muted);font-weight:800}

.shopping-settings-card{margin-top:14px}.shopping-settings-card h2{margin:0 0 8px}.store-country-list{display:grid;gap:9px;margin:12px 0}.store-country{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}.store-country summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;user-select:none}.store-country summary::-webkit-details-marker{display:none}.store-country-name{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.store-country-name img{width:25px;height:18px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(20,34,60,.12)}.store-country-count{min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#eaf2ff;color:#1d5fbf;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900}.store-country-chevron{font-size:20px;line-height:1;transition:transform .18s ease}.store-country[open] .store-country-chevron{transform:rotate(180deg)}.store-country .store-grid{padding:0 10px 10px}.store-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.store-check{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:12px;font-weight:800}.store-check input{accent-color:var(--blue)}@media(max-width:430px){.store-grid{grid-template-columns:1fr}.store-country summary{padding:11px}}
.scanner-shell video{transition:transform .22s ease;transform-origin:center center}
.scanner-rotate{position:absolute;z-index:4;left:14px;top:14px;min-height:44px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(8,15,36,.70);color:white;backdrop-filter:blur(10px);padding:8px 12px;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}

.shared-mode-banner{margin:0 0 14px;padding:14px 16px;border-radius:18px;background:#edf6ff;border:1px solid #cfe4ff}.shared-mode-banner strong{display:block;margin-bottom:4px}.shared-mode-banner p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}

/* My Decode 0.6.1 — dedicated owner admin */
.bottom-nav.has-admin { grid-template-columns: repeat(5, 1fr); }
.nav-admin span { font-size: 20px; }
.admin-view { padding-bottom: 8px; }
.admin-page-heading { padding-bottom: 14px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
.admin-stats article { min-width:0; padding:15px; border-radius:20px; background:linear-gradient(145deg,#101b3e,#173263); color:white; box-shadow:0 12px 30px rgba(13,22,53,.13); }
.admin-stats span { display:block; color:#b9c8e8; font-size:10px; font-weight:800; line-height:1.25; }
.admin-stats strong { display:block; margin-top:5px; font-size:28px; line-height:1; letter-spacing:-.04em; }
.admin-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:14px; align-items:start; }
.admin-panel { min-width:0; padding:18px; border:1px solid #dce7f7; border-radius:24px; background:rgba(255,255,255,.96); box-shadow:0 12px 34px rgba(13,22,53,.06); }
.admin-create-panel { grid-row:span 2; }
.admin-panel .section-heading { margin-bottom:6px; }
.admin-panel .section-heading h2 { font-size:19px; }
.admin-panel .card-copy { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.admin-panel .admin-invite-form { grid-template-columns:1fr; }
.admin-panel .admin-invite-form .button { grid-column:auto; }
.admin-panel .admin-list-row { padding:12px 0; }
.admin-panel .admin-user-row { padding:11px 0; }
@media (max-width:640px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats article{padding:13px;border-radius:17px}.admin-stats strong{font-size:24px}.admin-dashboard-grid{grid-template-columns:1fr;gap:12px}.admin-create-panel{grid-row:auto}.admin-panel{padding:15px;border-radius:20px}.bottom-nav.has-admin{padding-left:4px;padding-right:4px}.bottom-nav.has-admin button{min-width:0}.bottom-nav.has-admin button span{font-size:19px}.bottom-nav.has-admin button small{font-size:9px}}
@media (max-width:390px){.admin-stats{gap:8px}.admin-panel{padding:14px}.admin-list-row{grid-template-columns:minmax(0,1fr)}.admin-status,.admin-revoke{justify-self:start}}

/* My Decode 0.6.2 */
.kosher-settings-card{margin-top:18px}.person-result-avatar.has-image{overflow:hidden}.person-result-avatar.has-image img{width:100%;height:100%;object-fit:cover}.legal-required-copy{font-weight:800}.terms-ok{color:#16834a;font-weight:800}.terms-missing{color:#b42318;font-weight:800}html[dir="rtl"] body{direction:rtl}html[dir="rtl"] .page-heading,html[dir="rtl"] .section-heading,html[dir="rtl"] .profile-photo-copy,html[dir="rtl"] .admin-list-main{text-align:right}

.admin-edit-user{justify-self:end;align-self:center;padding:7px 10px}.admin-user-row{grid-template-columns:auto minmax(0,1fr) auto}

/* Focused watch-list editor */
.watch-edit-dialog{border:0;padding:0;background:transparent;width:min(94vw,620px);max-height:90vh}.watch-edit-dialog::backdrop{background:rgba(10,18,42,.5);backdrop-filter:blur(5px)}.watch-edit-card{background:#fff;border-radius:28px;padding:20px;box-shadow:0 24px 80px rgba(13,22,53,.22);max-height:86vh;overflow:auto}.watch-edit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.watch-edit-heading h2{margin:3px 0 0;font-size:24px}.watch-quick-add{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.55fr) auto;gap:8px;margin-top:16px}.watch-quick-add input,.watch-quick-add select{min-width:0}@media(max-width:560px){.watch-edit-dialog{width:calc(100vw - 20px)}.watch-edit-card{border-radius:24px;padding:16px}.watch-quick-add{grid-template-columns:1fr}.watch-quick-add .button{width:100%}}

.nutrition-warning{margin:8px 0 12px;padding:10px 12px;border-radius:14px;background:#fff5e8;color:#8a4b00;font-weight:800;font-size:13px;line-height:1.35}

/* My Decode 0.6.5 — local household profiles and tighter language layout */
.local-profile-form{margin:14px 0 18px;padding:14px;border:1px dashed #cfd9e8;border-radius:18px;background:#f9fbff}.local-profile-form h3{margin:0 0 4px;font-size:16px}.local-profile-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted);margin:10px 0}.local-profile-form input{width:100%;min-height:46px;border:1px solid #dce2ee;border-radius:13px;padding:0 13px}.local-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:999px;background:#eef4ff;color:#2b68b8;font-size:9px;font-weight:900}.language-switcher{display:grid!important;grid-template-columns:repeat(4,minmax(30px,1fr));flex:0 1 auto;min-width:0}.language-switcher button{min-width:0!important;width:auto!important}.topbar-actions{min-width:0}.language-switcher-dark{grid-template-columns:repeat(2,minmax(120px,1fr));width:min(100%,320px)}@media(max-width:520px){.language-switcher{grid-template-columns:repeat(4,30px);gap:2px}.language-switcher-dark{grid-template-columns:repeat(2,minmax(110px,1fr));width:100%}}@media(max-width:360px){.topbar{padding-left:8px;padding-right:8px}.language-switcher{grid-template-columns:repeat(4,28px)}.avatar-button{width:32px;height:32px}}
.local-rule-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.local-rule-chips button{border:0;border-radius:999px;background:#f1f5fb;color:#526078;padding:4px 7px;font-size:10px;font-weight:800;cursor:pointer}.local-profile-form select{width:100%;min-height:46px;border:1px solid #dce2ee;border-radius:13px;padding:0 13px;background:#fff}
.facebook-connect-card{background:linear-gradient(145deg,#f8fbff,#fff)}.facebook-connect-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.facebook-connect-row span{font-weight:850;color:#315b9a}@media(max-width:520px){.facebook-connect-row{align-items:stretch;flex-direction:column}}

.price-list{display:grid;gap:.65rem;margin:.65rem 0}.price-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.65rem .75rem;border:1px solid var(--line,#dde4ea);border-radius:.8rem}.price-row>div{display:flex;flex-direction:column;gap:.15rem}.price-value{text-align:right;white-space:nowrap}.price-row small{display:block;color:var(--muted,#667085);font-size:.78rem}.price-regular{text-decoration:line-through}@media(max-width:520px){.price-row{gap:.5rem}.price-value{min-width:7rem}}

.about-mini{margin-top:18px;padding-top:16px;border-top:1px solid rgba(20,42,82,.12)}
.about-mini h3{margin:0 0 6px}.about-mini p{margin:0 0 6px}.about-mini a{font-weight:700;word-break:break-word}

/* Home scan-scope selector: choose directly who the next scans apply to. */
.scan-member-pill { position: relative; cursor: pointer; user-select: none; border: 1px solid transparent; transition: opacity .15s ease, border-color .15s ease, background .15s ease; }
.scan-member-pill input { position: absolute; opacity: 0; pointer-events: none; }
.scan-member-pill.is-selected { background: #eef5ff; border-color: #b9d5ff; }
.scan-member-pill.is-excluded { opacity: .48; background: #f3f4f7; }
.scan-member-check { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: white; border: 1px solid #cbd5e5; color: var(--blue); font-size: 11px; font-weight: 900; }
.scan-member-pill.is-selected .scan-member-check { border-color: #6ea6ff; }

/* Facebook friend matching */
.facebook-friends-box{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.facebook-friends-results{display:grid;gap:8px;margin-top:10px}
.facebook-friend-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.facebook-friend-row:first-child{border-top:0}.facebook-friend-state{font-size:12px;font-weight:800;color:var(--muted)}

.admin-source-report-panel { grid-column: 1 / -1; }
.admin-source-report-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.admin-source-report-summary article { background:#f5f7fb; border:1px solid #e4e9f2; border-radius:14px; padding:12px; }
.admin-source-report-summary span { display:block; color:var(--muted); font-size:12px; font-weight:700; }
.admin-source-report-summary strong { display:block; margin-top:3px; font-size:24px; }
.admin-source-report-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.admin-source-report-table { width:100%; border-collapse:collapse; min-width:620px; font-size:13px; }
.admin-source-report-table th,.admin-source-report-table td { padding:10px 8px; border-bottom:1px solid #e6eaf2; text-align:right; white-space:nowrap; }
.admin-source-report-table th:first-child,.admin-source-report-table td:first-child { text-align:left; }
@media (max-width:520px){.admin-source-report-summary{grid-template-columns:1fr 1fr 1fr}.admin-source-report-summary strong{font-size:20px}}

.admin-invite-summary{display:flex;flex-direction:column;gap:3px;padding:12px 13px;border-radius:14px;background:#fff;border:1px solid #cfe2ff}.admin-invite-summary strong{font-size:15px;color:var(--ink)}.admin-invite-summary span{font-size:11px;color:var(--muted);line-height:1.4}.admin-invite-form input:disabled,.admin-invite-form select:disabled{opacity:.78;background:#f7f9fc;color:#4b5873}.admin-invite-form button[type=submit]:disabled{display:none}

/* Country picker — reuse the same SVG flags as the language switcher */
.country-field{display:grid;gap:7px;margin-top:10px}.country-field-label{font-size:12px;font-weight:800;color:var(--muted)}
.country-picker{position:relative}.country-picker summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(13,22,53,.04)}
.country-picker summary::-webkit-details-marker{display:none}.country-picker summary .flag-icon{width:24px;height:16px}.country-picker-chevron{margin-left:auto;color:var(--muted);transition:transform .16s ease}.country-picker[open] .country-picker-chevron{transform:rotate(180deg)}
.country-picker-menu{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);display:grid;gap:4px;padding:6px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 14px 35px rgba(13,22,53,.14)}
.country-picker-option{width:100%;min-height:42px;border:0;border-radius:11px;background:transparent;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;text-align:left;color:var(--ink);font-weight:750;cursor:pointer}.country-picker-option:hover{background:#f1f5fb}.country-picker-option.is-selected{background:#e7f1ff;color:#1667d8}.country-picker-option .flag-icon{width:24px;height:16px}.country-picker-check{font-weight:900;color:#1667d8}.country-picker-globe{width:24px;text-align:center;color:var(--muted);font-size:18px;line-height:1}
@media (max-width:520px){.country-picker-menu{position:static;margin-top:6px;box-shadow:none}.country-picker summary{min-height:48px}}

/* Profile sharing controls — roomy, touch-friendly mobile layout. */
.household-share-card{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.household-share-box{margin:12px 0 16px}
.share-duration-field{display:grid;gap:8px;margin:18px 0 16px;color:var(--muted);font-size:12px;font-weight:800}
.share-duration-field select{width:100%;min-height:50px;border:1px solid #dce2ee;border-radius:14px;background:#fff;color:var(--ink);padding:0 14px;font:inherit;font-size:15px;font-weight:750;outline:none}
.share-duration-field select:focus{border-color:#6ea6ff;box-shadow:0 0 0 4px rgba(37,130,255,.1)}
.household-share-card>.button{margin-top:4px}
@media(max-width:520px){.connections-card{margin-top:28px;padding:20px}.connection-group{margin-top:20px;padding-top:20px}.connection-row{padding:15px 0}.connection-actions{grid-column:1/-1;margin-left:53px}.connection-actions button{min-height:42px;padding:9px 12px}.share-duration-field{margin:20px 0 18px}.share-duration-field select{min-height:52px}}

.ocr-card { margin-top:16px; padding:18px; border-radius:22px; background:rgba(255,255,255,.94); border:1px solid rgba(224,229,240,.9); box-shadow:0 10px 28px rgba(13,22,53,.05); }
.ocr-card-copy strong { display:block; font-size:1rem; }
.ocr-card-copy p { margin:6px 0 0; color:var(--muted,#65708a); line-height:1.45; }
.ocr-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.ocr-photo-button { cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.ocr-status { min-height:1.3em; margin:12px 0 0; color:var(--muted,#65708a); font-size:.92rem; }
.ocr-review-label { display:block; margin-top:12px; font-weight:700; }
#ocr-text { width:100%; margin-top:7px; resize:vertical; min-height:120px; border:1px solid rgba(155,167,195,.55); border-radius:14px; padding:12px; font:inherit; line-height:1.45; background:#fff; color:inherit; box-sizing:border-box; }
#ocr-analyze { margin-top:10px; }
.ocr-safety-banner { border-style:solid; }
@media (max-width:560px) { .ocr-actions > .button, .ocr-actions > .ocr-photo-button { flex:1 1 100%; width:100%; } }

/* Beta opt-in remains for text and menu OCR. */
.beta-settings-card{padding:17px;margin-top:14px}
.beta-settings-card h2{margin:0 0 10px}
.beta-settings-card .card-copy{margin-top:10px}
