:root{--bg-page:#070b18;--bg-surface:#111827;--bg-surface-2:#182132;--bg-tile:#12192b;--bg-input:#0f172a;--line:#1f2937;--line-strong:#334155;--ink:#f8fafc;--text:#e2e8f0;--muted:#a3b0c4;--subtle:#7b889b;--disabled:#64748b;--accent:#2dd4a0;--accent-text:#34d399;--accent-ink:#06281e;--accent-bg:#122a2a;--accent-line:#1f5c4c;--high:#ef4444;--high-text:#fb7185;--high-bg:#2a1a22;--high-line:#5a212a;--moderate:#f5b73b;--moderate-text:#fbbf24;--moderate-bg:#2a2416;--moderate-line:#5c4a1c;--low:#2dd4a0;--low-text:#34d399;--low-bg:#122a2a;--low-line:#1f5c4c;--focus:#7dd3fc;--overlay:#070b18b8;--font-sans:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:36px;--leading-tight:1.2;--leading-body:1.5;--tracking-caps:.08em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;--shadow-card:0 1px 0 #ffffff08 inset, 0 8px 24px #00000059;--shadow-pop:0 16px 48px #00000080;--ease:cubic-bezier(.2,.8,.2,1);--t-fast:.12s;--t-base:.2s}:root[data-theme=light]{--bg-page:#f4f6f8;--bg-surface:#fff;--bg-surface-2:#fff;--bg-tile:#f1f5f9;--bg-input:#fff;--line:#e2e8f0;--line-strong:#cbd5e1;--ink:#0f172a;--text:#1e293b;--muted:#475569;--subtle:#64748b;--disabled:#94a3b8;--accent-bg:#ecfdf5;--accent-line:#a7f3d0;--accent-text:#047857;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate-text:#b45309;--moderate-bg:#fffbeb;--moderate-line:#fde68a;--low-text:#047857;--low-bg:#ecfdf5;--low-line:#a7f3d0;--shadow-card:0 1px 2px #1018280f, 0 8px 24px #1018280f}:root[data-text=large]{--text-xs:14px;--text-sm:15px;--text-base:17px;--text-md:19px;--text-lg:23px;--text-xl:27px;--text-2xl:34px;--text-3xl:40px;--leading-body:1.55}:root[data-palette=lime]{--bg-page:#0a0e0b;--bg-surface:#131a15;--bg-surface-2:#192219;--bg-tile:#151d17;--bg-input:#0f1511;--line:#243027;--line-strong:#3a4a3d;--ink:#f7fbf2;--text:#e3ebdd;--muted:#a9b8a6;--subtle:#8a9a88;--accent:#c8f542;--accent-text:#d4f968;--accent-ink:#152000;--accent-bg:#1b2612;--accent-line:#4c6a1c;--high:#ff5f5f;--high-text:#ff8080;--high-bg:#2a1718;--high-line:#5e2626;--moderate:#ffb340;--moderate-text:#ffc466;--moderate-bg:#2a2214;--moderate-line:#5e4a1c;--low:#c8f542;--low-text:#d4f968;--low-bg:#1b2612;--low-line:#4c6a1c;--focus:#d4f968;--grad-a:#c8f542;--grad-b:#2dd4a0}:root[data-palette=tangerine]{--bg-page:#120c1f;--bg-surface:#1c1430;--bg-surface-2:#241a3c;--bg-tile:#1f1735;--bg-input:#17112a;--line:#2e2449;--line-strong:#463a66;--ink:#fbf7ff;--text:#eae2f6;--muted:#b3a8c9;--subtle:#8f84a8;--accent:#ff8a3d;--accent-text:#ffa266;--accent-ink:#2a1200;--accent-bg:#2f1d1e;--accent-line:#6b3a1a;--high:#ff4d6d;--high-text:#ff7a93;--high-bg:#331626;--high-line:#6b2340;--moderate:#ffc542;--moderate-text:#ffd166;--moderate-bg:#30261a;--moderate-line:#6b5220;--low:#34e0a1;--low-text:#5eead4;--low-bg:#132a2a;--low-line:#1f5c4c;--focus:#ffa266;--grad-a:#ff8a3d;--grad-b:#c04bff}:root[data-palette=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f6f1e8;--bg-surface:#fffdf8;--bg-surface-2:#fbf6ec;--bg-tile:#f3ecdf;--bg-input:#fff;--line:#e6dccb;--line-strong:#cdbfa6;--ink:#1b1a17;--text:#2c2a25;--muted:#5e5a50;--subtle:#7a7569;--disabled:#a8a194;--accent:#0f766e;--accent-text:#0b5f58;--accent-ink:#fff;--accent-bg:#e3f2ef;--accent-line:#9fd3c9;--high:#d7263d;--high-text:#a8182b;--high-bg:#fbe9eb;--high-line:#f0b6bd;--moderate:#e09a00;--moderate-text:#8a5d00;--moderate-bg:#fdf3dc;--moderate-line:#f2d48a;--low:#1e9e6a;--low-text:#166d4a;--low-bg:#e4f5ec;--low-line:#a5dec1;--focus:#0f766e;--overlay:#1b1a1780;--shadow-card:0 1px 2px #1b1a170f,0 8px 24px #1b1a1714;--grad-a:#0f766e;--grad-b:#f59e0b}:root{--grad-a:#2dd4a0;--grad-b:#38bdf8}:root[data-bg=gradient] body{background:linear-gradient(160deg, color-mix(in srgb, var(--grad-a) 22%, var(--bg-page)) 0%, var(--bg-page) 45%, color-mix(in srgb, var(--grad-b) 18%, var(--bg-page)) 100%) fixed}:root[data-bg=aurora] body{background:radial-gradient(60% 40% at 15% 10%, color-mix(in srgb, var(--grad-a) 35%, transparent), transparent 70%), radial-gradient(50% 35% at 85% 20%, color-mix(in srgb, var(--grad-b) 30%, transparent), transparent 70%), radial-gradient(60% 40% at 50% 95%, color-mix(in srgb, var(--grad-a) 18%, transparent), transparent 70%), var(--bg-page) fixed}:root[data-bg=grid] body{background:linear-gradient(color-mix(in srgb, var(--line-strong) 45%, transparent) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, color-mix(in srgb, var(--line-strong) 45%, transparent) 1px, transparent 1px) 0 0 / 28px 28px, var(--bg-page)}:root[data-bg=dots] body{background:radial-gradient(color-mix(in srgb, var(--line-strong) 70%, transparent) 1.2px, transparent 1.3px) 0 0 / 18px 18px, var(--bg-page)}:root[data-bg]:not([data-bg=solid]) .topbar{background:color-mix(in srgb, var(--bg-page) 88%, transparent);-webkit-backdrop-filter:blur(12px)}:root[data-mode=light]:not([data-palette]),:root[data-mode=light][data-palette=mint]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f3f6f9;--bg-surface:#fff;--bg-surface-2:#f8fafc;--bg-tile:#eef3f6;--bg-input:#fff;--line:#dde4ec;--line-strong:#b9c5d3;--ink:#0b1220;--text:#1e293b;--muted:#4b5a6e;--subtle:#66758a;--disabled:#9aa7b8;--accent:#0f9f78;--accent-text:#077a5c;--accent-ink:#fff;--accent-bg:#e4f7f0;--accent-line:#9fe3cb;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#0f9f78;--low-text:#077a5c;--low-bg:#e4f7f0;--low-line:#9fe3cb;--focus:#0369a1;--overlay:#0b122073;--shadow-card:0 1px 2px #1018280f,0 8px 24px #10182812;--shadow-pop:0 16px 48px #1018282e;--grad-a:#0f9f78;--grad-b:#38bdf8}:root[data-mode=light][data-palette=lime]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f4f7f0;--bg-surface:#fff;--bg-surface-2:#f9fbf5;--bg-tile:#eef3e6;--bg-input:#fff;--line:#dbe3d1;--line-strong:#b8c6a8;--ink:#121a0c;--text:#243018;--muted:#55634a;--subtle:#6f7d63;--disabled:#9ca98f;--accent:#6aa50a;--accent-text:#4b7a00;--accent-ink:#fff;--accent-bg:#edf7d6;--accent-line:#c6e58a;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#6aa50a;--low-text:#4b7a00;--low-bg:#edf7d6;--low-line:#c6e58a;--focus:#4b7a00;--overlay:#121a0c73;--shadow-card:0 1px 2px #121a0c0f,0 8px 24px #121a0c12;--shadow-pop:0 16px 48px #121a0c2e;--grad-a:#9bd31a;--grad-b:#2dd4a0}:root[data-mode=light][data-palette=tangerine]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f9f4fb;--bg-surface:#fff;--bg-surface-2:#fbf7fd;--bg-tile:#f2eaf6;--bg-input:#fff;--line:#e6dbee;--line-strong:#c8b8d6;--ink:#1b1226;--text:#2e2340;--muted:#5d5070;--subtle:#776a8a;--disabled:#a79cb5;--accent:#e8630a;--accent-text:#b84a00;--accent-ink:#fff;--accent-bg:#fdeee2;--accent-line:#f9c7a0;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#0f9f78;--low-text:#077a5c;--low-bg:#e4f7f0;--low-line:#9fe3cb;--focus:#7c3aed;--overlay:#1b122673;--shadow-card:0 1px 2px #1b12260f,0 8px 24px #1b122612;--shadow-pop:0 16px 48px #1b12262e;--grad-a:#ff8a3d;--grad-b:#c04bff}:root[data-mode=dark][data-palette=paper]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#161411;--bg-surface:#1f1c18;--bg-surface-2:#26221d;--bg-tile:#211e19;--bg-input:#1a1815;--line:#332e27;--line-strong:#4d463c;--ink:#f6f1e8;--text:#e7e0d3;--muted:#b3a994;--subtle:#8f877a;--disabled:#6b6459;--accent:#3fbfb0;--accent-text:#6fd3c6;--accent-ink:#06241f;--accent-bg:#17302d;--accent-line:#2a5e57;--high:#f05a6b;--high-text:#ff8a97;--high-bg:#2e1a1e;--high-line:#5e2a32;--moderate:#f2b33d;--moderate-text:#f7c766;--moderate-bg:#2d2518;--moderate-line:#5e4a1f;--low:#3fbfb0;--low-text:#6fd3c6;--low-bg:#17302d;--low-line:#2a5e57;--focus:#6fd3c6;--overlay:#161411b8;--shadow-card:0 1px 0 #ffffff08 inset,0 8px 24px #00000059;--shadow-pop:0 16px 48px #00000080;--grad-a:#3fbfb0;--grad-b:#f59e0b}:root[data-palette=aurora],:root[data-mode=light][data-palette=aurora]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f4f6fb;--bg-surface:#fff;--bg-surface-2:#f8fafc;--bg-tile:#f1f5f9;--bg-input:#fff;--line:#e2e8f0;--line-strong:#cbd5e1;--ink:#0f172a;--text:#1e293b;--muted:#64748b;--subtle:#7b889b;--disabled:#a3aebf;--accent:#7c3aed;--accent-text:#6d28d9;--accent-ink:#fff;--accent-bg:#f3e8ff;--accent-line:#d8b4fe;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#059669;--low-text:#047857;--low-bg:#ecfdf5;--low-line:#a7f3d0;--focus:#7c3aed;--overlay:#0f172a73;--shadow-card:0 1px 2px #0f172a0f,0 8px 24px #7c3aed14;--shadow-pop:0 16px 48px #0f172a2e;--grad-a:#7c3aed;--grad-b:#ec4899;--grad-mid:#c026d3}:root[data-mode=dark][data-palette=aurora]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#0e0b1f;--bg-surface:#17132d;--bg-surface-2:#1f1a3a;--bg-tile:#1b1633;--bg-input:#120f26;--line:#2b2550;--line-strong:#433a73;--ink:#f5f3ff;--text:#e4e0f5;--muted:#aea6cf;--subtle:#8d85ad;--disabled:#6b6490;--accent:#a78bfa;--accent-text:#c4b5fd;--accent-ink:#1e1040;--accent-bg:#261d4a;--accent-line:#4c3d8a;--high:#f05a6b;--high-text:#ff8a97;--high-bg:#2e1a2a;--high-line:#5e2a3f;--moderate:#f2b33d;--moderate-text:#f7c766;--moderate-bg:#2d2518;--moderate-line:#5e4a1f;--low:#34d399;--low-text:#6ee7b7;--low-bg:#13302a;--low-line:#1f5c4c;--focus:#c4b5fd;--overlay:#0e0b1fb8;--shadow-card:0 1px 0 #ffffff08 inset,0 8px 24px #0006;--shadow-pop:0 16px 48px #0000008c;--grad-a:#8b5cf6;--grad-b:#f472b6;--grad-mid:#d946ef}:root[data-palette=nebula],:root[data-mode=dark][data-palette=nebula]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#0b0f19;--bg-surface:#131b2e;--bg-surface-2:#1c2742;--bg-tile:#182238;--bg-input:#0f1626;--line:#1e293b;--line-strong:#334155;--ink:#f1f5f9;--text:#e2e8f0;--muted:#94a3b8;--subtle:#7b889b;--disabled:#64748b;--accent:#a855f7;--accent-text:#e879f9;--accent-ink:#fff;--accent-bg:#241a44;--accent-line:#5b3f99;--high:#f05a6b;--high-text:#ff8a97;--high-bg:#2e1a24;--high-line:#5e2a36;--moderate:#f2b33d;--moderate-text:#f7c766;--moderate-bg:#2d2518;--moderate-line:#5e4a1f;--low:#22d3ee;--low-text:#67e8f9;--low-bg:#102a33;--low-line:#1b5566;--focus:#e879f9;--overlay:#0b0f19bf;--shadow-card:0 1px 0 #ffffff08 inset,0 8px 24px #0006;--shadow-pop:0 16px 48px #0000008c;--grad-a:#8b5cf6;--grad-b:#22d3ee;--grad-mid:#d946ef}:root[data-mode=light][data-palette=nebula]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f3f5fb;--bg-surface:#fff;--bg-surface-2:#f7f9fd;--bg-tile:#eef2f9;--bg-input:#fff;--line:#dde3ee;--line-strong:#bfc9db;--ink:#0b0f19;--text:#1e293b;--muted:#5b6b85;--subtle:#73819a;--disabled:#a0acbf;--accent:#7c3aed;--accent-text:#6d28d9;--accent-ink:#fff;--accent-bg:#efe9ff;--accent-line:#cdbcf8;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#0891b2;--low-text:#0e7490;--low-bg:#ecfeff;--low-line:#a5f3fc;--focus:#7c3aed;--overlay:#0b0f1973;--shadow-card:0 1px 2px #0b0f190f,0 8px 24px #7c3aed14;--shadow-pop:0 16px 48px #0b0f192e;--grad-a:#7c3aed;--grad-b:#06b6d4;--grad-mid:#c026d3}:root[data-palette=botanical],:root[data-mode=light][data-palette=botanical]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#f5f7f2;--bg-surface:#fff;--bg-surface-2:#fbfcf9;--bg-tile:#e9efe4;--bg-input:#fff;--line:#dbe5d4;--line-strong:#b9c9ae;--ink:#1c1917;--text:#292524;--muted:#57534e;--subtle:#78716c;--disabled:#a8a29e;--accent:#059669;--accent-text:#047857;--accent-ink:#fff;--accent-bg:#e2f5ea;--accent-line:#9fd9b8;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#059669;--low-text:#047857;--low-bg:#e2f5ea;--low-line:#9fd9b8;--focus:#0d9488;--overlay:#1c191773;--shadow-card:0 1px 2px #1c19170f,0 8px 24px #05966914;--shadow-pop:0 16px 48px #1c19172e;--grad-a:#059669;--grad-b:#f59e0b;--grad-mid:#14b8a6}:root[data-mode=dark][data-palette=botanical]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#0e1511;--bg-surface:#161f19;--bg-surface-2:#1d2921;--bg-tile:#19241d;--bg-input:#111a15;--line:#27352c;--line-strong:#3c4f42;--ink:#f3f7f1;--text:#e1e9dd;--muted:#a9b8a6;--subtle:#8a9a88;--disabled:#66766a;--accent:#34d399;--accent-text:#6ee7b7;--accent-ink:#062e22;--accent-bg:#14302a;--accent-line:#1f5c4c;--high:#f05a6b;--high-text:#ff8a97;--high-bg:#2e1a1e;--high-line:#5e2a32;--moderate:#fbbf24;--moderate-text:#fcd34d;--moderate-bg:#2d2518;--moderate-line:#5e4a1f;--low:#34d399;--low-text:#6ee7b7;--low-bg:#14302a;--low-line:#1f5c4c;--focus:#6ee7b7;--overlay:#0e1511b8;--shadow-card:0 1px 0 #ffffff08 inset,0 8px 24px #0006;--shadow-pop:0 16px 48px #0000008c;--grad-a:#10b981;--grad-b:#f59e0b;--grad-mid:#2dd4bf}:root[data-palette=velvet],:root[data-mode=dark][data-palette=velvet]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#12091c;--bg-surface:#1d102d;--bg-surface-2:#29173e;--bg-tile:#241436;--bg-input:#170c25;--line:#3b1f5a;--line-strong:#56307f;--ink:#faf5ff;--text:#ede4f7;--muted:#c4a8dc;--subtle:#a088bb;--disabled:#75628a;--accent:#ec4899;--accent-text:#f472b6;--accent-ink:#fff;--accent-bg:#3a1733;--accent-line:#7a2e62;--high:#fb7185;--high-text:#fda4af;--high-bg:#3a1a28;--high-line:#6b2a42;--moderate:#fbbf24;--moderate-text:#fcd34d;--moderate-bg:#2f2416;--moderate-line:#5e4a1f;--low:#34d399;--low-text:#6ee7b7;--low-bg:#14302a;--low-line:#1f5c4c;--focus:#f472b6;--overlay:#12091cbf;--shadow-card:0 1px 0 #ffffff08 inset,0 8px 24px #00000073;--shadow-pop:0 16px 48px #0009;--grad-a:#ec4899;--grad-b:#fbbf24;--grad-mid:#f43f5e}:root[data-mode=light][data-palette=velvet]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-page:#fbf6fb;--bg-surface:#fff;--bg-surface-2:#fdf9fd;--bg-tile:#f6ecf5;--bg-input:#fff;--line:#ecdcea;--line-strong:#d6bcd2;--ink:#1f1026;--text:#33203d;--muted:#6d5879;--subtle:#866f91;--disabled:#b19fba;--accent:#db2777;--accent-text:#be185d;--accent-ink:#fff;--accent-bg:#fce7f3;--accent-line:#f9a8d4;--high:#dc2626;--high-text:#b91c1c;--high-bg:#fef2f2;--high-line:#fecaca;--moderate:#d97706;--moderate-text:#a15a00;--moderate-bg:#fff7e6;--moderate-line:#fcd9a0;--low:#059669;--low-text:#047857;--low-bg:#ecfdf5;--low-line:#a7f3d0;--focus:#db2777;--overlay:#1f102673;--shadow-card:0 1px 2px #1f10260f,0 8px 24px #db277714;--shadow-pop:0 16px 48px #1f10262e;--grad-a:#db2777;--grad-b:#f59e0b;--grad-mid:#e11d48}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg-page);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;margin:0}:root[data-theme=light] html,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}button,input,select{font:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app{max-width:430px;padding:var(--s-4);gap:var(--s-4);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}@media (width>=720px){.app{max-width:640px}.auth-panel{right:calc(50vw - 304px)}}.topbar{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-3);top:var(--s-2);z-index:5;background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;padding:10px 12px;display:flex;position:sticky}.brand{flex:240px;align-items:center;gap:10px;min-width:0;display:flex}.brand>div{min-width:0}.brand h1{font-size:var(--text-md);color:var(--ink);line-height:var(--leading-tight);white-space:nowrap;margin:0}.brand .muted{font-size:var(--text-xs);white-space:normal;line-height:1.3;display:block}@media (width<=560px){.topbar{padding:8px 10px}.topbar-right{gap:6px}.auth>.muted{display:none}.auth .btn.small{min-height:32px;padding:6px 8px}}.logo{background:var(--accent);width:36px;height:36px;color:var(--accent-ink);border-radius:10px;flex:none;place-items:center;font-weight:800;display:grid}.topbar-right{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:6px 8px;min-width:0;display:flex}.topbar-right>*{flex:none}.topbar .counter{align-items:center;gap:4px;min-height:36px;display:inline-flex}.topbar .auth{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.topbar .auth .btn.small{min-height:36px}.theme-switch{border-radius:var(--r-pill);background:var(--bg-tile);border:1px solid var(--line);align-items:center;gap:2px;min-height:36px;padding:3px;display:inline-flex}.theme-switch-btn{border-radius:var(--r-pill);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;border:none;place-items:center;display:grid}.theme-switch-btn:hover{color:var(--ink);transform:scale(1.04)}.theme-switch-btn.on{background:var(--accent);color:var(--accent-ink)}.theme-switch-icon{width:16px;height:16px;display:block}.theme-switch-icon svg{width:100%;height:100%}@media (width<=340px){.theme-switch{display:none}}.counter{font-size:var(--text-xs);color:var(--accent-text);background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:var(--r-pill);white-space:nowrap;padding:5px 10px}.counter strong{color:var(--ink);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.auth{align-items:center;gap:var(--s-2);display:flex}.muted{color:var(--muted)}.subtle{color:var(--subtle)}.small{font-size:var(--text-sm)}.eyebrow{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent-text);font-size:11px;font-weight:700}.card{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);gap:var(--s-3);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.card.hero{background:linear-gradient(180deg, var(--bg-surface-2), var(--bg-surface))}.card-head h2,.report-head h2{font-size:var(--text-md);color:var(--ink);line-height:var(--leading-tight);margin:0 0 2px}.card-head .muted{font-size:var(--text-sm)}.media{border:2px dashed var(--line-strong);border-radius:var(--r-md);background:var(--bg-tile);place-items:center;display:grid;position:relative;overflow:hidden}.media.empty{height:clamp(120px,22dvh,180px);min-height:120px}.media.has-media{aspect-ratio:4/3;min-height:220px;max-height:60dvh}.media img,.media video{object-fit:contain;width:100%;height:100%;display:block}.media.busy img,.media.busy video{opacity:.4}.placeholder{color:var(--muted);font-size:var(--text-sm);text-align:center;padding:var(--s-4)}.overlay{background:var(--overlay);justify-content:center;align-items:center;gap:var(--s-3);padding:var(--s-4);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.steps{font-size:var(--text-sm);color:var(--muted);flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.steps li{align-items:center;gap:8px;display:flex}.steps li:before{content:"";background:var(--line-strong);border-radius:50%;flex:none;width:8px;height:8px}.steps li.active{color:var(--ink)}.steps li.active:before{background:var(--accent);animation:1.2s ease-in-out infinite pulse}.steps li.done{color:var(--accent-text)}.steps li.done:before{background:var(--accent)}@keyframes pulse{50%{opacity:.35}}.spinner{border:3px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.row>*{min-width:0}.btn{border:1px solid var(--line-strong);background:var(--bg-surface-2);color:var(--ink);border-radius:var(--r-md);font-weight:700;font-size:var(--text-base);cursor:pointer;text-align:center;min-height:44px;transition:filter var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);padding:13px 16px}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none;transform:none}.btn.wide{width:100%}.btn.small{font-size:var(--text-sm);min-height:40px;padding:8px 12px}.btn.pill{border-radius:var(--r-pill);white-space:nowrap;justify-content:center;align-items:center;min-height:48px;padding:12px 10px;font-size:16px;display:inline-flex}.btn.link{color:var(--accent-text);background:0 0;border:none;min-height:36px;padding:8px 6px;font-weight:600}.error{color:var(--high-text);background:var(--high-bg);border:1px solid var(--high-line);border-radius:var(--r-md);font-size:var(--text-sm);margin:0;padding:10px 12px}.notice{font-size:var(--text-sm);color:var(--moderate-text);background:var(--moderate-bg);border:1px solid var(--moderate-line);border-radius:var(--r-md);margin:0;padding:10px 12px}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{font-size:var(--text-xs);border-radius:var(--r-pill);background:var(--bg-tile);border:1px solid var(--line);min-height:32px;color:var(--muted);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chip select{color:var(--ink);font-weight:600;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:0}.domain-row{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.report-head{justify-content:space-between;gap:var(--s-3);align-items:flex-start;display:flex}.report-head h2{font-size:var(--text-xl);letter-spacing:-.01em;margin:2px 0 4px}.report-head .muted{font-size:var(--text-sm)}.score{border:2px solid;border-radius:18px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:76px;height:76px;line-height:1;display:flex}.score strong{font-variant-numeric:tabular-nums;font-size:28px}.score small{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:9px}.score-high{color:var(--high-text);border-color:var(--high);background:var(--high-bg)}.score-moderate{color:var(--moderate-text);border-color:var(--moderate);background:var(--moderate-bg)}.score-low{color:var(--low-text);border-color:var(--low);background:var(--low-bg)}.pills{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.pill{border-radius:var(--r-md);text-align:center;border:1px solid;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;font-size:11px;font-weight:600;display:flex}.pill b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:22px;line-height:1}.pill-high{color:var(--high-text);background:var(--high-bg);border-color:var(--high-line)}.pill-moderate{color:var(--moderate-text);background:var(--moderate-bg);border-color:var(--moderate-line)}.pill-low{color:var(--low-text);background:var(--low-bg);border-color:var(--low-line)}.summary{margin:0}.concerns{background:var(--high-bg);border:1px solid var(--high-line);border-radius:var(--r-md);padding:12px 14px}.concerns h3{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--high-text);margin:0 0 6px}.concerns ul{margin:0;padding-left:18px;font-size:14px}.section-title{margin:var(--s-2) 0 0;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--muted);justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.section-title span{text-transform:none;letter-spacing:0;color:var(--subtle);font-weight:400}.ingredients{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ing{background:var(--bg-surface);border:1px solid var(--line);border-left:4px solid var(--line);box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.ing p{margin:0;font-size:14px}.ing-high{border-left-color:var(--high)}.ing-moderate{border-left-color:var(--moderate)}.ing-low{border-left-color:var(--low)}.ing-head{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.ing-name{font-weight:700;font-size:var(--text-base);color:var(--ink)}.ing-name .muted{font-weight:400}.kv{font-size:var(--text-sm);color:var(--muted)}.badge{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-pill);white-space:nowrap;border:1px solid;padding:4px 9px;font-size:10px;font-weight:800}.badge-high{color:var(--high-text);background:var(--high-bg);border-color:var(--high-line)}.badge-moderate{color:var(--moderate-text);background:var(--moderate-bg);border-color:var(--moderate-line)}.badge-low{color:var(--low-text);background:var(--low-bg);border-color:var(--low-line)}.cite{color:var(--accent-text);font-size:var(--text-xs);text-decoration:none}.cite:hover{text-decoration:underline}.cite.pending,.kv.caution{color:var(--moderate-text)}.group-toggle{background:var(--bg-tile);border:1px solid var(--line);color:var(--muted);border-radius:var(--r-md);text-align:left;cursor:pointer;font-weight:600;font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;padding:12px 14px;display:flex}.group-toggle:hover{color:var(--ink)}footer{text-align:center;padding:var(--s-2) 0 var(--s-4);font-size:var(--text-xs);color:var(--subtle);margin-top:auto}[hidden]{display:none!important}main,.view{gap:var(--s-4);flex-direction:column;display:flex}.tabbar{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--r-lg);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.tab{color:var(--muted);font-size:var(--text-xs);border-radius:var(--r-md);cursor:pointer;min-height:48px;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-weight:700;display:flex}.tab:hover{color:var(--ink)}.tab.active{background:var(--accent);color:var(--accent-ink)}.tab-icon{width:20px;height:20px;display:block}.tab-icon svg{width:100%;height:100%}@media (width<=560px){.tabbar{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:6;box-shadow:var(--shadow-pop);position:fixed}.app{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}.toasts{z-index:20;pointer-events:none;flex-direction:column;gap:6px;width:min(92vw,360px);display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.toast{background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:var(--text-sm);border-radius:var(--r-md);text-align:center;box-shadow:var(--shadow-pop);animation:toast-in var(--t-base) var(--ease);padding:10px 14px}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.field{font-size:var(--text-sm);color:var(--muted);flex-direction:column;gap:6px;min-width:0;font-weight:600;display:flex}.input,.select{box-sizing:border-box;background:var(--bg-input);width:100%;min-width:0;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-md);font-weight:400;font-size:var(--text-base);padding:10px 12px}.input:focus,.select:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--focus)}textarea.input{resize:vertical;min-height:84px}input[type=date].input,input[type=time].input,input[type=datetime-local].input{appearance:none;text-align:left;min-height:44px;display:block}input[type=date].input::-webkit-date-and-time-value{text-align:left}.section-row{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.chip.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.chip{cursor:pointer}.compare-grid{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.slot{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3);gap:var(--s-2);flex-direction:column;align-items:stretch;min-width:0;display:flex}.slot .row{gap:6px}.slot .row .btn{min-width:0;padding:8px 4px}.slot-high{border-color:var(--high-line)}.slot-moderate{border-color:var(--moderate-line)}.slot-low{border-color:var(--low-line)}.slot .placeholder{padding:var(--s-3) 0}.slot-name{color:var(--ink);font-size:var(--text-sm);line-height:var(--leading-tight)}.score.score-sm{border-radius:14px;align-self:center;width:60px;height:60px}.score-sm strong{font-size:22px}.score.score-xs{border-radius:10px;flex:none;width:40px;height:40px}.score-xs strong{font-size:15px}.mini-pills{flex-wrap:wrap;gap:4px;display:flex}.verdict-title{font-size:var(--text-lg);color:var(--ink);margin:0}.diff{gap:var(--s-3);flex-direction:column;display:flex}.diff-list{font-size:var(--text-sm);flex-direction:column;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.diff-list li{align-items:center;gap:8px;display:flex}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot-high{background:var(--high)}.dot-moderate{background:var(--moderate)}.dot-low{background:var(--low)}.swaps{gap:var(--s-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.swap{padding:var(--s-4);gap:var(--s-2)}.swap-head{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.swap-line{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;display:flex}.swap-from{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--high);text-decoration-color:var(--high);align-items:center;gap:6px;display:inline-flex}.swap-from .badge{text-decoration:none}.swap-to{align-items:center;gap:6px;display:inline-flex}.swap-arrow{color:var(--accent-text)}.swap-body{margin:0;font-size:14px}.swap-actions{justify-content:space-between;align-items:center;display:flex}.btn.liked{color:var(--high-text);border-color:var(--high-line)}.profile-head{align-items:center;gap:var(--s-3);display:flex}.avatar{background:var(--accent);width:52px;height:52px;color:var(--accent-ink);border-radius:16px;flex:none;place-items:center;font-size:22px;font-weight:800;display:grid}.avatar-mint{color:#06281e;background:linear-gradient(135deg,#2dd4a0,#38bdf8)}.avatar-sky{color:#0b1f3a;background:linear-gradient(135deg,#60a5fa,#a78bfa)}.avatar-violet{color:#1e1340;background:linear-gradient(135deg,#a78bfa,#f472b6)}.avatar-amber{color:#2a1d02;background:linear-gradient(135deg,#f5b73b,#fb7185)}.avatar-rose{color:#3a0a14;background:linear-gradient(135deg,#fb7185,#f97316)}.avatar-slate{color:#0f172a;background:linear-gradient(135deg,#94a3b8,#475569)}.palette-grid{margin-bottom:var(--s-3);grid-template-columns:1fr 1fr;gap:10px;display:grid}.palette-tile{border-radius:var(--r-md);border:2px solid var(--line);background:var(--bg-tile);color:var(--text);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.palette-tile.on{border-color:var(--accent)}.palette-tile b{font-size:var(--text-sm);color:var(--ink)}.palette-tile small{font-size:var(--text-xs);color:var(--muted)}.pal-preview{border-radius:8px;gap:4px;width:100%;height:34px;margin-bottom:4px;display:flex;overflow:hidden}.pal-preview i{flex:1;display:block}.pal-mint .pal-preview i:first-child{background:#070b18}.pal-mint .pal-preview i:nth-child(2){background:linear-gradient(135deg,#2dd4a0,#38bdf8)}.pal-mint .pal-preview i:nth-child(3){background:#111827}.pal-lime .pal-preview i:first-child{background:#0a0e0b}.pal-lime .pal-preview i:nth-child(2){background:linear-gradient(135deg,#c8f542,#2dd4a0)}.pal-lime .pal-preview i:nth-child(3){background:#131a15}.pal-aurora .pal-preview i:first-child{background:#f4f6fb}.pal-aurora .pal-preview i:nth-child(2){background:linear-gradient(135deg,#7c3aed,#c026d3,#ec4899)}.pal-aurora .pal-preview i:nth-child(3){background:#fff;border:1px solid #e2e8f0}.pal-nebula .pal-preview i:first-child{background:#0b0f19}.pal-nebula .pal-preview i:nth-child(2){background:linear-gradient(135deg,#8b5cf6,#d946ef,#22d3ee)}.pal-nebula .pal-preview i:nth-child(3){background:#131b2e}.pal-botanical .pal-preview i:first-child{background:#f5f7f2}.pal-botanical .pal-preview i:nth-child(2){background:linear-gradient(135deg,#059669,#14b8a6,#f59e0b)}.pal-botanical .pal-preview i:nth-child(3){background:#e9efe4}.pal-velvet .pal-preview i:first-child{background:#12091c}.pal-velvet .pal-preview i:nth-child(2){background:linear-gradient(135deg,#ec4899,#f43f5e,#fbbf24)}.pal-velvet .pal-preview i:nth-child(3){background:#1d102d}:root[data-palette=aurora] .btn.primary,:root[data-palette=nebula] .btn.primary,:root[data-palette=botanical] .btn.primary,:root[data-palette=velvet] .btn.primary,:root[data-palette=aurora] .tab.active,:root[data-palette=nebula] .tab.active,:root[data-palette=botanical] .tab.active,:root[data-palette=velvet] .tab.active,:root[data-palette=aurora] .logo,:root[data-palette=nebula] .logo,:root[data-palette=botanical] .logo,:root[data-palette=velvet] .logo,:root[data-palette=aurora] .theme-switch-btn.on,:root[data-palette=nebula] .theme-switch-btn.on,:root[data-palette=botanical] .theme-switch-btn.on,:root[data-palette=velvet] .theme-switch-btn.on{background:linear-gradient(90deg, var(--grad-a), var(--grad-mid,var(--grad-a)), var(--grad-b));color:#fff;border-color:#0000}:root[data-palette=aurora] .shutter,:root[data-palette=nebula] .shutter,:root[data-palette=botanical] .shutter,:root[data-palette=velvet] .shutter{background:linear-gradient(135deg, var(--grad-a), var(--grad-b))}.pal-tangerine .pal-preview i:first-child{background:#120c1f}.pal-tangerine .pal-preview i:nth-child(2){background:linear-gradient(135deg,#ff8a3d,#c04bff)}.pal-tangerine .pal-preview i:nth-child(3){background:#1c1430}.pal-paper .pal-preview i:first-child{background:#f6f1e8}.pal-paper .pal-preview i:nth-child(2){background:linear-gradient(135deg,#0f766e,#f59e0b)}.pal-paper .pal-preview i:nth-child(3){background:#fffdf8}.mode-row{margin-bottom:var(--s-3);grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.mode-row .chip-pick{border-radius:var(--r-md);flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.mode-row .chip-pick.on{border-color:var(--accent);background:var(--accent-bg)}.mode-row .mode-icon{font-size:var(--text-md);color:var(--accent-text);line-height:1}.bg-row{margin-bottom:var(--s-3);grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.bg-tile{border-radius:var(--r-md);border:2px solid var(--line);background:var(--bg-tile);color:var(--muted);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:6px;display:flex}.bg-tile.on{border-color:var(--accent);color:var(--ink)}.bg-tile small{font-size:var(--text-xs)}.bg-preview{aspect-ratio:1;background:var(--bg-page);border:1px solid var(--line);border-radius:8px;width:100%}.bg-gradient .bg-preview{background:linear-gradient(160deg, color-mix(in srgb, var(--grad-a) 35%, var(--bg-page)), var(--bg-page) 50%, color-mix(in srgb, var(--grad-b) 30%, var(--bg-page)))}.bg-aurora .bg-preview{background:radial-gradient(60% 50% at 20% 15%, color-mix(in srgb, var(--grad-a) 55%, transparent), transparent 70%), radial-gradient(60% 50% at 85% 30%, color-mix(in srgb, var(--grad-b) 50%, transparent), transparent 70%), var(--bg-page)}.bg-grid .bg-preview{background:linear-gradient(color-mix(in srgb, var(--line-strong) 70%, transparent) 1px, transparent 1px) 0 0 / 8px 8px, linear-gradient(90deg, color-mix(in srgb, var(--line-strong) 70%, transparent) 1px, transparent 1px) 0 0 / 8px 8px, var(--bg-page)}.bg-dots .bg-preview{background:radial-gradient(var(--line-strong) 1px, transparent 1.2px) 0 0 / 6px 6px, var(--bg-page)}.profile-id{min-width:0}.profile-title .btn.link{vertical-align:middle;margin-left:8px}.edit-profile{gap:var(--s-2);padding:var(--s-3);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;display:flex}.field-label{font-size:var(--text-sm);color:var(--muted);font-weight:600}.swatches{flex-wrap:wrap;gap:10px;display:flex}.avatar-pick{cursor:pointer;appearance:none;border:3px solid #0000;border-radius:14px;place-items:center;width:44px;height:44px;padding:0;font-size:18px;font-weight:800;line-height:1;display:grid}.avatar-pick.on{border-color:var(--ink)}.account-meta{flex-wrap:wrap;gap:8px;width:100%;display:flex}.account-actions{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.btn.link.danger{color:var(--high-text)}.profile-title{font-size:var(--text-lg);color:var(--ink);margin:2px 0}.progress{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-pill);height:8px;overflow:hidden}.progress span{background:var(--accent);border-radius:var(--r-pill);height:100%;transition:width var(--t-base) var(--ease);display:block}.stats{gap:var(--s-2);grid-template-columns:repeat(4,1fr);display:grid}.stat{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);text-align:center;flex-direction:column;gap:2px;padding:10px 6px;display:flex}.stat b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.stat b.high{color:var(--high-text)}.stat span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10px;font-weight:700}.toggles{gap:var(--s-2);flex-direction:column;display:flex}.toggle{align-items:center;gap:var(--s-3);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;cursor:pointer;color:var(--text);padding:10px 12px;display:flex}.toggle.on{border-color:var(--accent-line);background:var(--accent-bg)}.toggle.toggle-allergen.on{border-color:var(--high-line);background:var(--high-bg)}.toggle.toggle-allergen.on .toggle-dot{background:var(--high)}.toggle.toggle-allergen.on .toggle-dot:after{background:#fff}.toggle-dot{border-radius:var(--r-pill);background:var(--line-strong);width:36px;height:20px;transition:background var(--t-fast) var(--ease);flex:none;position:relative}.toggle-dot:after{content:"";background:var(--ink);width:16px;height:16px;transition:transform var(--t-fast) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.toggle.on .toggle-dot{background:var(--accent)}.toggle.on .toggle-dot:after{background:var(--accent-ink);transform:translate(16px)}.toggle-text{flex-direction:column;gap:1px;display:flex}.toggle-text b{color:var(--ink);font-size:var(--text-sm)}.toggle-text small{color:var(--muted);font-size:var(--text-xs)}.pantry{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pantry-item{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.pantry-item.open{border-color:var(--accent-line)}.pantry-main{align-items:center;gap:var(--s-3);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:0;display:flex}.pantry-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pantry-text b{color:var(--ink);font-size:var(--text-sm)}.pantry-text small{font-size:var(--text-xs)}.pantry-actions{gap:var(--s-2);justify-content:flex-end;display:flex}.concerns.dietary{background:var(--moderate-bg);border-color:var(--moderate-line)}.concerns.allergen{background:var(--high-bg);border-color:var(--high-line)}.concerns.allergen h3{color:var(--high-text)}.ing.ing-allergen{outline:2px solid var(--high);outline-offset:-2px}.badges{flex:none;align-items:center;gap:6px;display:inline-flex}.badge-allergen{background:var(--high);color:#fff}.concerns.dietary h3{color:var(--moderate-text)}.seg{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{color:var(--muted);font-weight:700;font-size:var(--text-sm);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:none;min-height:36px;padding:8px}.seg button.active{background:var(--accent);color:var(--accent-ink)}.seg button:disabled{cursor:not-allowed;opacity:.6}.paste{gap:var(--s-3);flex-direction:column;display:flex;position:relative}.paste.busy .field{opacity:.4}.paste .overlay{border-radius:var(--r-md)}.bell-wrap{position:relative}.bell{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg-surface-2);width:36px;height:36px;color:var(--ink);cursor:pointer;place-items:center;display:grid;position:relative}.bell-badge{border-radius:var(--r-pill);background:var(--high);color:#fff;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px}.inbox{background:var(--bg-surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:min(92vw,360px);max-height:70vh;padding:var(--s-3);gap:var(--s-2);box-shadow:var(--shadow-pop);z-index:30;flex-direction:column;display:flex;position:absolute;top:42px;right:0;overflow:auto}.notif{background:var(--bg-tile);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r-md);font-size:var(--text-sm);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.notif-maintenance{border-left-color:var(--moderate)}.notif-promo{border-left-color:var(--high)}.notif p{margin:0}.notif img{border-radius:var(--r-sm);max-width:100%}.notif .btn{align-self:flex-start;text-decoration:none}.banner{background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.banner b{color:var(--ink)}.banner .btn.link{margin-left:auto}.account{justify-content:space-between;align-items:center;gap:var(--s-3);padding-top:var(--s-2);border-top:1px solid var(--line);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.account-row{flex-direction:column;gap:2px;min-width:0;display:flex}.account-who{text-overflow:ellipsis;align-items:center;gap:8px;font-weight:600;display:flex;overflow:hidden}.dot-sync{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px}.dot-sync[data-state=synced]{background:var(--accent)}.dot-sync[data-state=syncing]{background:var(--moderate)}.dot-sync[data-state=error]{background:var(--high)}.history{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.history-item{align-items:center;gap:var(--s-3);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex}.allowance{display:block}.limit-edit{flex:none;align-items:center;gap:10px;display:flex}.limit-edit .input{width:110px;padding:6px 8px}.limit-now{flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.limit-now b{font-size:var(--text-lg);color:var(--ink)}.limit-now small{font-size:var(--text-xs);color:var(--muted);letter-spacing:1px;text-transform:uppercase}.scope-edit{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.scope-edit .input{min-width:220px;font-size:var(--text-sm);flex:1;padding:6px 8px}.row-actions{gap:4px;display:inline-flex}.auth{position:relative}.auth-backdrop{z-index:8;background:#00000059;position:fixed;inset:0}.auth-panel{z-index:9;background:var(--bg-surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:min(320px,100vw - 32px);padding:var(--s-4);gap:var(--s-3);text-align:left;flex-direction:column;display:flex;position:fixed;top:72px;right:max(16px,50vw - 199px);box-shadow:0 16px 40px #00000073}.auth-panel-head{justify-content:space-between;align-items:center;display:flex}.auth-panel-head b{font-size:var(--text-md)}.auth-panel .btn.primary svg{vertical-align:-3px;margin-right:8px}.auth-panel .btn.link{align-self:flex-start;padding-left:0}.pw-field{align-items:center;gap:6px;display:flex}.pw-field .input{flex:1;min-width:0}.setup-verified{color:var(--low-text);font-weight:800}.auth-email{gap:6px;display:flex}.auth-email .input{min-width:0;font-size:var(--text-sm);flex:1;padding:8px 10px}.auth-msg{margin:0}.auth-panel{max-height:calc(100dvh - 32px);overflow:auto}@media (width<=560px){.auth-panel{max-height:calc(100dvh - 92px - env(safe-area-inset-bottom))}}.auth-stack{flex-direction:column;gap:8px;display:flex}.auth-provider{justify-content:center;align-items:center;gap:10px;display:inline-flex}.auth-or{color:var(--subtle);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:10px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--line);flex:1;height:1px}.auth-links{flex-wrap:wrap;gap:2px 14px;display:flex}.auth-links .btn.link{padding-left:0;padding-right:0}.auth-fine{font-size:var(--text-xs);color:var(--subtle);margin:0}.pw-edit{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pw-edit .input{min-width:0;font-size:var(--text-sm);flex:180px;padding:6px 8px}@media (width<=560px){.auth-panel{top:auto;left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));width:auto}}.admin-entry{border-color:var(--moderate-line);color:var(--moderate-text)}.admin{gap:var(--s-3);flex-direction:column;display:flex}.admin-bar{align-items:center;gap:var(--s-2);background:var(--moderate-bg);border:1px solid var(--moderate-line);min-width:0;color:var(--moderate-text);border-radius:var(--r-md);font-size:var(--text-sm);flex-wrap:wrap;padding:8px 12px;display:flex}.admin-bar strong{color:var(--ink);white-space:nowrap}.admin-bar .spacer{flex:1}.admin-bar>.muted{text-overflow:ellipsis;white-space:nowrap;flex:120px;min-width:0;overflow:hidden}.admin-bar .btn{white-space:nowrap}.admin-shield{font-size:16px}.admin-layout{gap:var(--s-3);grid-template-columns:1fr;display:grid}.admin-nav{gap:4px;padding-bottom:2px;display:flex;overflow-x:auto}.admin-navitem{background:var(--bg-surface);border:1px solid var(--line);color:var(--muted);border-radius:var(--r-md);font-weight:700;font-size:var(--text-sm);cursor:pointer;flex-direction:column;flex:none;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.admin-navitem small{color:var(--subtle);font-size:10px;font-weight:500}.admin-navitem.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.admin-navitem.active small{color:var(--accent-ink)}.admin-main{gap:var(--s-4);flex-direction:column;min-width:0;display:flex}@media (width>=720px){.app:has(.admin){max-width:1100px}.admin-layout{grid-template-columns:200px 1fr}.admin-nav{flex-direction:column;align-self:start;position:sticky;top:70px;overflow:visible}.admin-navitem{width:100%}}.kpis{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.kpi{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-weight:700}.kpi-value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.kpi-sub{font-size:var(--text-xs);color:var(--subtle)}.kpi-high .kpi-value{color:var(--high-text)}.kpi-moderate .kpi-value{color:var(--moderate-text)}.kpi-low .kpi-value{color:var(--low-text)}.chart{flex-direction:column;gap:6px;margin:0;display:flex}.chart svg{background:var(--bg-tile);border-radius:var(--r-md);width:100%;height:auto}.swatch{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin:0 4px 0 8px;display:inline-block}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.tbl th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.flags{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.flag{justify-content:space-between;align-items:center;gap:var(--s-3);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex}.flag-kill{border-color:var(--high-line)}.flag-text{flex-direction:column;gap:2px;min-width:0;display:flex}.flag-text b{color:var(--ink);font-size:var(--text-sm)}.flag-text small{font-size:var(--text-xs);color:var(--muted)}.flag .toggle{background:0 0;border:none;flex:none;padding:0}.flag-text .btn.link{text-align:left;align-self:flex-start;padding:4px 0}.flag-text .scope-edit{align-self:stretch}.flag-groups{flex-wrap:wrap;gap:6px;display:flex}.flag-groups .chip{text-decoration:none}.flag-groups .chip .muted{margin-left:6px}.modal{background:var(--overlay);padding:var(--s-4);z-index:40;place-items:center;display:grid;position:fixed;inset:0}.modal .card{max-width:420px}.plain{font-size:var(--text-sm);flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.compose{gap:var(--s-4);grid-template-columns:1fr;display:grid}@media (width>=900px){.compose{grid-template-columns:1fr 320px}}.compose-form{gap:var(--s-3);flex-direction:column;display:flex}.compose-preview{gap:var(--s-2);flex-direction:column;display:flex}.notif-row,.initiative{justify-content:space-between;gap:var(--s-2);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;display:flex}.initiative-text{flex-direction:column;gap:2px;min-width:0;display:flex}.initiative-text small{font-size:var(--text-xs)}@media (width<=560px){.flag:has(.limit-edit){flex-wrap:wrap}.flag:has(.limit-edit) .flag-text{flex:100%}.limit-edit{flex:100%;justify-content:flex-end}.limit-edit .input{flex:1 1 0;width:0;min-width:0}.limit-edit .btn,.limit-now{flex:none}.notif-row,.initiative{flex-wrap:wrap}.notif-row>div:first-child,.initiative-text{flex:100%;min-width:0}.notif-row .pantry-actions,.initiative .pantry-actions{flex:100%;justify-content:flex-end}}.lang-grid{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip-pick{font:inherit;font-size:var(--text-sm);border-radius:var(--r-pill);background:var(--bg-tile);border:1px solid var(--line);min-height:40px;color:var(--text);cursor:pointer;align-items:baseline;gap:6px;padding:8px 14px;display:inline-flex}.chip-pick small{color:var(--muted);font-size:var(--text-xs)}.chip-pick.on{border-color:var(--accent-line);background:var(--accent-bg);color:var(--ink)}.chip-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[dir=rtl] .ing-head,[dir=rtl] .report-head,[dir=rtl] .card-head,[dir=rtl] .section-row{direction:rtl}[dir=rtl] .cite,[dir=rtl] .allowance{text-align:right}[dir=rtl] .steps li:before{margin-left:8px;margin-right:0}.overlay{isolation:isolate;overflow:hidden}.overlay.motion:before,.overlay.motion:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 40%, transparent), transparent 70%);filter:blur(28px);opacity:.95;position:absolute;inset:-40%}.overlay.motion:before{width:70%;height:70%;animation:9s ease-in-out infinite alternate cloud-a}.overlay.motion:after{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);width:60%;height:60%;animation:11s ease-in-out infinite alternate cloud-b;inset:auto -30% -30% auto}@keyframes cloud-a{0%{transform:translate(-12%,-8%)scale(1)}to{transform:translate(30%,24%)scale(1.25)}}@keyframes cloud-b{0%{transform:translate(10%,10%)scale(1.1)}to{transform:translate(-28%,-30%)scale(.9)}}.scan-beam{pointer-events:none;z-index:0;background:linear-gradient(90deg, transparent, var(--accent) 20%, var(--accent) 80%, transparent);height:2px;box-shadow:0 0 14px 3px color-mix(in srgb, var(--accent) 55%, transparent), 0 0 48px 10px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:999px;animation:2.4s cubic-bezier(.45,0,.55,1) infinite alternate beam;position:absolute;top:8%;left:6%;right:6%}@keyframes beam{0%{opacity:.55;top:8%}50%{opacity:1}to{opacity:.55;top:90%}}.wave{align-items:center;gap:4px;height:26px;display:flex}.wave i{background:var(--accent);border-radius:3px;width:5px;height:10px;animation:1.1s ease-in-out infinite wave;display:block}.wave i:nth-child(2){animation-delay:.12s}.wave i:nth-child(3){animation-delay:.24s}.wave i:nth-child(4){animation-delay:.36s}.wave i:nth-child(5){animation-delay:.48s}@keyframes wave{0%,to{opacity:.55;height:8px}50%{opacity:1;height:26px}}.overlay.motion .steps{z-index:1;background:color-mix(in srgb, var(--bg-tile) 72%, transparent);-webkit-backdrop-filter:blur(6px);border-radius:12px;padding:8px 14px;position:relative}.processing{border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-tile);margin-bottom:var(--s-3);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.processing-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.processing-head b{font-size:var(--text-sm);color:#0b1220;background:var(--accent);border-radius:999px;padding:2px 10px}.processing-ultra .processing-head b{background:var(--high,#e5484d);color:#fff}.processing-processed .processing-head b{background:var(--moderate,#f5a524);color:#0b1220}.processing-kv.processing-ultra{color:var(--high,#e5484d)}.processing-kv.processing-processed{color:var(--moderate,#f5a524)}.btn.next{background:linear-gradient(135deg, #7c3aed 0%, #2563eb 55%, var(--accent) 100%);color:#fff;margin-top:var(--s-3);border:0;font-weight:700;box-shadow:0 6px 18px #2563eb59}.btn.next:hover{filter:brightness(1.08)}:root[data-theme=light] .btn.next{color:#fff}.nutrition{margin:var(--s-3) 0;flex-direction:column;gap:8px;display:flex}.nutrition-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.nutrition-table th{text-align:left;border-bottom:1px solid var(--line);color:var(--ink);padding:5px 6px 5px 0;font-weight:500}.nutrition-table td{text-align:right;border-bottom:1px solid var(--line);color:var(--ink);white-space:nowrap;padding:5px 0 5px 6px}.nutrition-table thead td,.nutrition-table thead th{color:var(--muted);font-size:var(--text-xs,12px);text-transform:uppercase;letter-spacing:.04em}.nutrition-table tr.sub th{color:var(--muted);padding-left:14px}.nutrition-flags{font-size:var(--text-sm);flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.nutrition-flags li{border:1px solid var(--line);border-radius:8px;padding:6px 10px}.nutrition-flags li.high{background:var(--moderate-bg,#2a2314);border-color:var(--moderate-line,#5a4a1a);color:var(--moderate-text,#f5c24b)}.nutrition-flags li.low{background:var(--bg-tile);color:var(--muted)}.nutrition-none{opacity:.9}[dir=rtl] .nutrition-table th{text-align:right}[dir=rtl] .nutrition-table td{text-align:left}.score-ring{background:0 0;border:none;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.score-ring svg{position:absolute;inset:0}.score-ring-text{flex-direction:column;align-items:center;line-height:1;display:flex;position:relative}.score-ring-text strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:28px}.score-ring-text small{letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:800}.score-how{background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.score-how p{font-size:var(--text-sm);line-height:var(--leading-body);margin:0}.btn.link.score-how{align-self:flex-start;min-height:28px;padding:2px 0}.pills-filter .pill{font:inherit;cursor:pointer;transition:opacity var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);font-size:11px;font-weight:600}.pills-filter.filtering .pill:not(.on){opacity:.5}.pills-filter .pill.on{border-width:2px}.pills-filter .pill-high.on{border-color:var(--high)}.pills-filter .pill-moderate.on{border-color:var(--moderate)}.pills-filter .pill-low.on{border-color:var(--low)}.pills-hint{margin-top:-4px}.ingredients.compact{gap:6px}.ing.ing-compact{box-shadow:none;gap:0;padding:0}.ing-row{align-items:center;gap:var(--s-2);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;min-height:48px;padding:10px 12px;display:flex}.ing-row-text{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.ing-row-text .ing-name{font-size:15px}.ing-row-text .kv{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ing-chev{color:var(--muted);flex:none;font-size:12px}.ing-detail{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:8px 12px 12px;display:flex}.ing-detail p{margin:0;font-size:14px}.options{gap:var(--s-2);flex-direction:column;display:flex}.options-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.option-row{align-items:center;gap:var(--s-3);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;min-height:56px;padding:10px 12px;display:flex}.option-row:hover{border-color:var(--accent-line)}.score.option-score{border-radius:12px;flex-direction:column;width:50px;height:50px}.score.option-score strong{font-size:17px}.score.option-score small{letter-spacing:.02em;text-transform:uppercase;margin-top:2px;font-size:7px;font-weight:800}.option-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.option-name{color:var(--ink);font-weight:700;font-size:var(--text-sm)}.onboard{z-index:20;background:var(--overlay);padding:var(--s-4);place-items:center;display:grid;position:fixed;inset:0}.onboard-card{gap:var(--s-4);width:min(420px,100%);padding:var(--s-6);flex-direction:column;display:flex}.onboard-card h2{font-size:var(--text-2xl);line-height:var(--leading-tight);margin:0}.onboard-card p{font-size:var(--text-md);line-height:var(--leading-body);margin:0}.onboard-icon{background:var(--accent-bg);border:1px solid var(--accent-line);width:96px;height:96px;color:var(--accent);border-radius:24px;place-items:center;display:grid}.onboard-icon svg{width:48px;height:48px}.onboard-dots{justify-content:center;gap:6px;display:flex}.onboard-dots span{background:var(--line-strong);width:6px;height:6px;transition:width var(--t-fast) var(--ease);border-radius:3px}.onboard-dots span.on{background:var(--accent);width:22px}.onboard .btn.link{align-self:center}.chip-row{gap:var(--s-2);flex-wrap:wrap;display:flex}.shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.shelf-tile{background:var(--bg-tile);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.shelf-tile.open{border-color:var(--accent-line)}.shelf-main{color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;flex-direction:column;gap:8px;min-width:0;padding:0;display:flex}.shelf-main b{color:var(--ink);font-size:var(--text-sm);line-height:1.25}.shelf-main small{font-size:11px}.shelf-top{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.shelf-domain{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--r-pill);white-space:nowrap;text-overflow:ellipsis;max-width:92px;padding:3px 7px;font-size:9px;font-weight:700;overflow:hidden}.shelf .pantry-actions{justify-content:flex-start;gap:0}.shelf .pantry-actions .btn{white-space:nowrap;min-height:28px;padding:4px 6px 4px 0;font-size:12px}.card.group{gap:var(--s-3)}.group-head{justify-content:space-between;align-items:center;gap:var(--s-2);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;min-height:44px;padding:0;display:flex}.group-title{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}.group-title h2{font-size:var(--text-md);margin:0}.group-summary{color:var(--muted);font-size:var(--text-sm);font-weight:600}.chip-grid{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip-pick.chip-allergen.on{border-color:var(--high);background:var(--high-bg);color:var(--high-text)}.media.viewfinder.empty{border-style:solid;border-color:var(--line);background:linear-gradient(180deg, var(--bg-surface-2), var(--bg-input));height:clamp(220px,38dvh,320px)}.frame-guide{pointer-events:none;position:absolute;inset:18px}.frame-guide i{border:3px solid var(--accent);width:26px;height:26px;position:absolute}.frame-guide i:first-child{border-bottom:none;border-right:none;border-top-left-radius:10px;top:0;left:0}.frame-guide i:nth-child(2){border-bottom:none;border-left:none;border-top-right-radius:10px;top:0;right:0}.frame-guide i:nth-child(3){border-top:none;border-right:none;border-bottom-left-radius:10px;bottom:0;left:0}.frame-guide i:nth-child(4){border-top:none;border-left:none;border-bottom-right-radius:10px;bottom:0;right:0}.placeholder.vf{position:relative}.shutter-row{padding:0 var(--s-2);justify-content:space-between;align-items:center;display:flex}.shutter{background:var(--accent);border:6px solid var(--bg-surface);width:76px;height:76px;box-shadow:0 0 0 3px var(--accent);cursor:pointer;transition:transform var(--t-fast) var(--ease);border-radius:50%}.shutter:active{transform:scale(.94)}.shutter:disabled{opacity:.5;cursor:progress}.shutter-side{border-radius:var(--r-lg);background:var(--bg-tile);border:1px solid var(--line-strong);width:64px;height:64px;color:var(--text);font:inherit;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.shutter-side svg{width:20px;height:20px}.center{text-align:center;display:block}#report{scroll-margin-top:120px}.history-cards{gap:8px}.history-item.history-card{transition:border-color var(--t-fast) var(--ease);flex-direction:column;align-items:stretch;gap:0;padding:0}.history-item.history-card.open{border-color:var(--accent-line)}.history-head{align-items:center;gap:var(--s-3);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;min-height:56px;padding:10px 12px;display:flex}.history-head .pantry-text{flex:auto}.history-body{border-top:1px solid var(--line);animation:history-in var(--t-fast) var(--ease);padding:4px 8px 8px}.history-body .card.report{box-shadow:none;background:0 0;border:none;padding:8px 4px 4px}.history-lite{opacity:.92;flex-wrap:wrap}.history-lite .pantry-text{flex:auto;min-width:0}.history-lite .btn.link{white-space:nowrap;min-height:30px;font-size:var(--text-xs);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:2px 8px}.history-body .report-head .eyebrow,.history-body .report-head h2{display:none}@keyframes history-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.history-body{animation:none}}.verdict{font-size:var(--text-md);color:var(--ink);border-left:4px solid var(--line-strong);margin:4px 0 6px;padding-left:10px;font-weight:700;line-height:1.3}.verdict-avoid{border-left-color:var(--high);color:var(--high-text)}.verdict-caution{border-left-color:var(--moderate);color:var(--moderate-text)}.verdict-fine{border-left-color:var(--low);color:var(--low-text)}.compare-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.compare-table th,.compare-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:8px 6px}.compare-table thead th{border-bottom:1px solid var(--line-strong)}.compare-table tbody th{color:var(--muted);width:34%;font-weight:600}.compare-table td{color:var(--ink);font-variant-numeric:tabular-nums}.compare-table td.better{background:var(--accent-bg)}.compare-table td.warn{color:var(--high-text)}.compare-table .tick{color:var(--accent-text);margin-left:6px;font-weight:800}.compare-col{font:inherit;color:var(--ink);text-align:left;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-weight:800;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.verdict-cell{font-weight:700}.verdict-cell.verdict-avoid{color:var(--high-text)}.verdict-cell.verdict-caution{color:var(--moderate-text)}.verdict-cell.verdict-fine{color:var(--low-text)}.offline-packs{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.offline-pack{justify-content:space-between;align-items:center;gap:var(--s-2);background:var(--bg-tile);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex}.offline-pack .pantry-text{flex:auto;min-width:0}.offline-queue{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.notice.offline-banner,.notice.offline-note{border-color:var(--accent-line);background:var(--accent-bg);color:var(--text)}.slow-switch{margin-top:10px}:root[data-layout=adaptive] .app{padding-left:max(var(--s-4), env(safe-area-inset-left));padding-right:max(var(--s-4), env(safe-area-inset-right))}@media (width<=340px){:root[data-layout=adaptive] .app{padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right));gap:var(--s-3)}:root[data-layout=adaptive] .card{padding:var(--s-4);border-radius:var(--r-md)}:root[data-layout=adaptive] .topbar{padding:8px}:root[data-layout=adaptive] .brand h1{font-size:var(--text-md)}:root[data-layout=adaptive] .brand .muted.small{font-size:11px;line-height:1.3}:root[data-layout=adaptive] .tabbar{padding:3px;left:8px;right:8px}:root[data-layout=adaptive] .tab{min-height:44px;padding:7px 2px;font-size:10px}:root[data-layout=adaptive] .bg-row{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}:root[data-layout=adaptive] .mode-row{gap:6px}:root[data-layout=adaptive] .mode-row .chip-pick{padding:8px 6px}:root[data-layout=adaptive] .mode-row .chip-pick small{display:none}:root[data-layout=adaptive] .palette-grid,:root[data-layout=adaptive] .row{grid-template-columns:1fr}:root[data-layout=adaptive] .chips{gap:6px}:root[data-layout=adaptive] .chip,:root[data-layout=adaptive] label.chip{min-width:0;padding:6px 8px;font-size:11px}:root[data-layout=adaptive] .kpis{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}}@media (width<=300px){:root[data-layout=adaptive] .tab>span:not(.tab-icon){display:none}:root[data-layout=adaptive] .tab{min-height:40px}:root[data-layout=adaptive] .mode-row{grid-template-columns:1fr}}@media (height<=500px) and (orientation:landscape){:root[data-layout=adaptive] .media.viewfinder.empty{height:clamp(140px,42dvh,220px)}:root[data-layout=adaptive] .media.has-media{min-height:140px;max-height:50dvh}:root[data-layout=adaptive] .topbar{padding:6px 10px;position:static}:root[data-layout=adaptive] .brand h1{font-size:var(--text-md)}:root[data-layout=adaptive] .brand .muted.small{font-size:11px}:root[data-layout=adaptive] .app{gap:var(--s-3);padding-top:max(8px, env(safe-area-inset-top))}:root[data-layout=adaptive] .card{padding:var(--s-4)}:root[data-layout=adaptive] .app>.tabbar,:root[data-layout=adaptive] main>.view>.card{top:8px}}@media (width>=600px) and (width<=899px){:root[data-layout=adaptive] .app{max-width:760px}:root[data-layout=adaptive] .shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px),(orientation:landscape) and (height<=500px) and (width>=640px){:root[data-layout=adaptive] .app{column-gap:var(--s-5);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:104px minmax(0,1fr);align-content:start;max-width:1240px;display:grid}:root[data-layout=adaptive] .app>.topbar,:root[data-layout=adaptive] .app>footer,:root[data-layout=adaptive] .app>.onboard,:root[data-layout=adaptive] .app>.admin{grid-column:1/-1}:root[data-layout=adaptive] .app>.tabbar{flex-direction:column;grid-area:2/1;align-self:start;gap:6px;padding:6px;display:flex;position:sticky;top:92px}:root[data-layout=adaptive] .app>.tabbar .tab{min-height:64px;font-size:var(--text-xs)}:root[data-layout=adaptive] .app>main,:root[data-layout=adaptive] .app>.banner{grid-column:2}:root[data-layout=adaptive] .app>main{gap:var(--s-4);grid-row:2;grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;display:grid}:root[data-layout=adaptive] main>.view:not([hidden]){gap:var(--s-5);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;display:grid}:root[data-layout=adaptive] main>.view>.card{position:sticky;top:92px}:root[data-layout=adaptive] main>.view>#report:empty{display:none}:root[data-layout=adaptive] main>.view:has(>#report:empty){grid-template-columns:minmax(0,1fr);max-width:720px}:root[data-layout=adaptive] main:has(>.card.hero){grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-layout=adaptive] main>.card.hero,:root[data-layout=adaptive] main>.view,:root[data-layout=adaptive] main>p{grid-column:1/-1}:root[data-layout=adaptive] .app:has(.admin){grid-template-columns:minmax(0,1fr)}:root[data-layout=adaptive] .auth-panel{right:calc(50vw - min(100vw,1240px)/2 + 16px)}}@media (horizontal-viewport-segments:2){:root[data-layout=adaptive] .app{grid-template-columns:minmax(0,1fr);max-width:none;padding-left:0;padding-right:0}:root[data-layout=adaptive] .app>.tabbar{margin:0 var(--s-4);grid-column:1;grid-auto-flow:column;display:grid;position:static}:root[data-layout=adaptive] .app>.topbar,:root[data-layout=adaptive] .app>main,:root[data-layout=adaptive] .app>footer{margin:0 var(--s-4);grid-column:1}:root[data-layout=adaptive] main>.view:not([hidden]){grid-template-columns:calc(env(viewport-segment-right 0 0) - var(--s-4) - var(--s-5)) minmax(0, 1fr);column-gap:calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0) + var(--s-5))}}@media (vertical-viewport-segments:2){:root[data-layout=adaptive] .media.viewfinder.empty,:root[data-layout=adaptive] .media.has-media{height:clamp(140px, calc(env(viewport-segment-height 0 0) - 200px), 320px);max-height:none}}
