@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_3d9c7ff2-module__6cOLqa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_3d9c7ff2-module__6cOLqa__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-accent:#9184d9;--color-accent-2:#a7a1db;--color-divider:#e9e9ed29;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-200:#e7e5fe;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-500:#968ae0;--color-accent-600:#796cbf;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--color-accent-2-100:#f5f4ff;--color-accent-2-200:#e7e5fe;--color-accent-2-300:#d2cefd;--color-accent-2-400:#b5afe8;--color-accent-2-500:#9690c9;--color-accent-2-600:#7972a9;--color-accent-2-700:#5c5783;--color-accent-2-800:#423e5d;--color-accent-2-900:#2b293a;--color-section:#262a60;--color-section-glow:#353b80;--color-section-ghost:#4c5397;--font-heading:var(--font-inter,"Inter"), system-ui, sans-serif;--font-heading-weight:500;--font-body:var(--font-inter,"Inter"), system-ui, sans-serif;--space-1:2.8px;--space-2:5.6px;--space-3:8.4px;--space-4:11.2px;--space-6:16.8px;--space-8:22.4px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c, 0 6px 18px #0000008c;--shadow-lg:0 0 0 1px #9397ab, 0 16px 40px #000000a6}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight)}.lighten{mix-blend-mode:lighten;background-color:#0000}*,:before,:after{box-sizing:border-box}body{margin:0;font-size:15px;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.015em;margin:0 0 var(--space-2);line-height:1.12}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{letter-spacing:.08em;text-transform:uppercase;font-size:13px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}img{max-width:100%;display:block}figure{margin:0}figcaption{margin-top:var(--space-1);color:color-mix(in srgb, var(--color-text) 55%, transparent);font-size:11px}.text-muted{color:color-mix(in srgb, var(--color-text) 55%, transparent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.hr{height:1px;margin:var(--space-4) 0;background:linear-gradient(to right, transparent, var(--color-divider) 48px, var(--color-divider) calc(100% - 48px), transparent);border:0}.btn{cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-size:14px;line-height:1.2;text-decoration:none;display:inline-flex}.btn svg{display:block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{color:var(--color-accent);border-color:var(--color-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.btn-primary:active{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.btn-secondary:active{background:color-mix(in srgb, var(--color-text) 14%, transparent)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.btn-ghost:active{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.btn-icon{width:36px;height:36px;padding:0}.btn-block{width:100%;margin-top:var(--space-2)}.field>label{color:color-mix(in srgb, var(--color-text) 70%, transparent);margin-bottom:5px;font-size:12px;display:block}.input{width:100%;min-height:36px;font:inherit;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:6px 10px;font-size:14px}.input:hover{border-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0}textarea.input{resize:vertical;min-height:90px}.field-checkbox{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.radio{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.radio input,.seg-opt input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.radio .dot{border:1.5px solid var(--color-divider);border-radius:50%;flex:none;width:16px;height:16px}.radio:hover .dot{border-color:var(--color-accent)}.radio input:checked+.dot{border-color:var(--color-accent);background:var(--color-accent);box-shadow:inset 0 0 0 4px var(--color-bg)}.radio input:focus-visible+.dot{outline:2px solid var(--color-accent);outline-offset:2px}.seg{border:1px solid var(--color-divider);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.seg-opt+.seg-opt{border-left:1px solid var(--color-divider)}.seg-opt:has(input:checked){color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.seg-opt:not(:has(input:checked)):hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.seg-opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:-2px}.card{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.card-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:10px}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;line-height:1.2}.card-body{opacity:.8;flex:1;margin:0;font-size:13px}.card-meta{color:color-mix(in srgb, var(--color-text) 50%, transparent);align-items:center;gap:6px;font-size:11px;display:flex}.elev-sm{box-shadow:var(--shadow-sm)}.elev-md{box-shadow:var(--shadow-md)}.elev-lg{box-shadow:var(--shadow-lg)}.tag{letter-spacing:.02em;border-radius:calc(var(--radius-md) * .75);align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-accent{background:var(--color-accent-800);color:var(--color-accent-100)}.tag-accent-2{background:var(--color-accent-2-800);color:var(--color-accent-2-100)}.tag-neutral{background:var(--color-neutral-800);color:var(--color-neutral-100)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent)}.nav{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:none;display:flex}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);margin-right:auto;font-size:18px}.nav a{color:inherit;font-size:14px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.account-menu{font-size:14px;position:relative}.account-menu>summary{cursor:pointer;color:inherit;align-items:center;gap:4px;list-style:none;display:inline-flex}.account-menu>summary::-webkit-details-marker{display:none}.account-menu>summary svg{transition:transform .15s}.account-menu[open]>summary svg{transform:rotate(180deg)}.account-menu>summary:hover,.account-menu[open]>summary{color:var(--color-accent)}.account-menu-panel{top:calc(100% + var(--space-2));z-index:20;gap:var(--space-1);min-width:160px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;right:0}.account-menu-panel a,.account-menu-panel button{text-align:left;width:100%;padding:var(--space-2);border-radius:var(--radius-sm);font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;display:block}.account-menu-panel a:hover,.account-menu-panel button:hover{background:color-mix(in srgb, var(--color-text) 8%, transparent)}.account-menu-panel button:disabled{opacity:.45;cursor:not-allowed}.account-menu .import-error{margin-top:var(--space-2);font-size:12px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text) 60%, transparent);padding:var(--space-2);border-bottom:1px solid #0000;font-size:11px}.table td{padding:var(--space-2);border-bottom:1px solid #0000}.table thead tr{background:linear-gradient(to right, transparent, var(--color-divider) 48px, var(--color-divider) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px}.table tbody tr{background:linear-gradient(to right, transparent, color-mix(in srgb, var(--color-text) 8%, transparent) 48px, color-mix(in srgb, var(--color-text) 8%, transparent) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px}.table tbody tr:hover{background:linear-gradient(color-mix(in srgb, var(--color-text) 4%, transparent), color-mix(in srgb, var(--color-text) 4%, transparent)) no-repeat 0 0 / 100% 100%, linear-gradient(to right, transparent, color-mix(in srgb, var(--color-text) 8%, transparent) 48px, color-mix(in srgb, var(--color-text) 8%, transparent) calc(100% - 48px), transparent) no-repeat bottom / 100% 1px}.dialog-backdrop{padding:var(--space-4);background:color-mix(in srgb, var(--color-neutral-900) 50%, transparent);place-items:center;display:grid;position:fixed;inset:0}.dialog{gap:var(--space-3);width:min(440px,100%);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.dialog-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px}.dialog-body{opacity:.85;font-size:14px}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}
.pantry{--color-bg:#582c4d;--color-surface:#ece2d0;--color-card:#d5b9b2;--color-plum:#582c4e;--color-plum-strong:#582c4d;--color-accent:#a26769;--color-on-plum:#f3f5fe;--color-text:var(--color-on-plum)}.pantry a{color:var(--color-on-plum)}.pantry a:hover{color:var(--color-accent)}.site-nav .nav-brand{font-size:28px}.pantry .nav a[aria-current=page]{color:var(--color-on-plum);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:4px;font-weight:600}.pantry .account-menu-panel{color:var(--color-plum);border-color:color-mix(in srgb, var(--color-plum) 35%, transparent)}.pantry .account-menu-panel a{color:var(--color-plum)}.pantry .account-menu-panel a:hover,.pantry .account-menu-panel button:hover{background:color-mix(in srgb, var(--color-accent) 16%, transparent)}.import-page{flex-direction:column;min-height:100vh;display:flex}.import-panel{width:100%;max-width:720px;margin:0 auto var(--space-8);padding:var(--space-8) var(--space-6);background:var(--color-surface);color:var(--color-plum);gap:var(--space-6);border-radius:10px;flex-direction:column;display:flex}.import-panel a{color:var(--color-plum);text-decoration:none}.import-panel a:hover{color:var(--color-accent);text-decoration:underline}.auth-panel{width:100%;max-width:420px;margin:0 auto var(--space-8);padding:var(--space-8) var(--space-6);background:var(--color-surface);color:var(--color-plum);gap:var(--space-6);border-radius:10px;flex-direction:column;display:flex}.auth-panel a{color:var(--color-plum);text-decoration:none}.auth-panel a:hover{color:var(--color-accent);text-decoration:underline}.pantry .card{background:var(--color-card);color:var(--color-plum)}.pantry .card-kicker{color:var(--color-plum)}.pantry .card-title{color:var(--color-plum-strong)}.pantry .card-meta{color:color-mix(in srgb, var(--color-plum) 70%, transparent)}.pantry .input{background:var(--color-surface);color:var(--color-plum);border-color:color-mix(in srgb, var(--color-plum) 35%, transparent);caret-color:var(--color-accent)}.pantry .input:hover{border-color:var(--color-accent)}.pantry .input:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:2px}.pantry .field>label{color:color-mix(in srgb, var(--color-plum) 70%, transparent)}.pantry .btn-primary{color:var(--color-on-plum);background:var(--color-plum);border-color:var(--color-plum)}.pantry .btn-primary:hover{background:color-mix(in oklch, white 15%, var(--color-plum))}.pantry .btn-primary:active{background:color-mix(in oklch, white 22%, var(--color-plum))}.pantry .btn-primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pantry .btn-danger{color:#b23a48;border-color:#b23a48}.pantry .btn-danger:hover{background:#b23a481f}.pantry .btn-danger:active{background:#b23a4838}.pantry .btn-danger:focus-visible{outline-offset:2px;outline:2px solid #b23a48}.pantry .dialog{color:var(--color-plum)}.pantry .btn-secondary{color:var(--color-plum);border-color:color-mix(in srgb, var(--color-plum) 35%, transparent)}.pantry .btn-secondary:hover{background:color-mix(in srgb, var(--color-plum) 7%, transparent)}.pantry .btn-secondary:active{background:color-mix(in srgb, var(--color-plum) 14%, transparent)}.pantry .btn-secondary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.import-row{gap:var(--space-3);display:flex}.import-row .input{flex:1}.import-row .btn{white-space:nowrap}.import-empty{padding:var(--space-8) var(--space-4)}.import-empty p{max-width:48ch;color:var(--color-plum);margin:0;font-size:15px;line-height:1.6}.import-error{align-items:center;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-plum);font-size:14px;display:flex}.import-error svg{stroke:var(--color-plum);flex-shrink:0}.import-retry{margin-top:var(--space-4);align-self:center;min-height:36px}@keyframes pantry-pulse{0%,to{opacity:.35}50%{opacity:.9}}.skeleton{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-plum) 22%, transparent);animation:1.4s ease-in-out infinite pantry-pulse}.skeleton-title{width:60%;height:22px}.skeleton-line{height:14px}.skeleton-block{border-radius:var(--radius-md);width:100%;height:160px}.import-loading{gap:var(--space-3);flex-direction:column;display:flex}.import-status-label{color:var(--color-plum);margin-bottom:var(--space-1);font-size:14px;font-weight:500}.recipe{gap:var(--space-6);flex-direction:column;display:flex}.confidence-banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-card);border-radius:var(--radius-md);color:var(--color-plum);font-size:14px;display:flex}.confidence-banner svg{stroke:var(--color-plum);flex-shrink:0}.recipe-title{font-family:var(--font-heading);color:var(--color-plum);margin:0;font-size:26px;font-weight:500}.recipe-meta{gap:var(--space-4);margin-top:var(--space-3);color:var(--color-plum);flex-wrap:wrap;font-size:14px;display:flex}.recipe-meta strong{font-weight:500}.recipe-source{margin-top:var(--space-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.recipe-shopping-list-action{align-items:center;gap:var(--space-3);display:flex}.recipe-shopping-list-confirm{color:var(--color-plum);font-size:14px}.section-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-plum);margin-bottom:var(--space-3);font-size:10px}.ingredient-list{flex-direction:column;display:flex}.ingredient-row{padding:var(--space-2) 0;border-bottom:1px solid color-mix(in srgb, var(--color-plum) 15%, transparent);color:var(--color-plum);font-size:15px}.shopping-list-panel{width:100%;max-width:720px;margin:0 auto var(--space-8);padding:var(--space-8) var(--space-6);background:var(--color-surface);color:var(--color-plum);border-radius:10px}.shopping-list-panel a{color:var(--color-plum);text-decoration:none}.shopping-list-panel a:hover{color:var(--color-accent);text-decoration:underline}.shopping-list-add-form{gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.shopping-list-add-form .input{flex:1}.shopping-list-add-form .btn{white-space:nowrap}.shopping-list-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:color-mix(in srgb, var(--color-plum) 70%, transparent);font-size:13px;display:flex}.shopping-list-row{align-items:center;gap:var(--space-2);display:flex}.shopping-list-row-check{align-items:center;gap:var(--space-2);cursor:pointer;flex:1;min-width:0;display:flex}.shopping-list-row-label{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:15px}.shopping-list-row-label:hover{text-decoration:underline}.shopping-list-row-label:disabled{cursor:not-allowed}.shopping-list-row-label:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.shopping-list-edit-form{flex:1;min-width:0}.shopping-list-edit-form .input{width:100%;font-size:15px}.shopping-list-row-remove{cursor:pointer;width:32px;height:32px;color:var(--color-on-plum);background:var(--color-plum);border:1px solid var(--color-plum);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.shopping-list-row-remove:hover{background:#b23a48;border-color:#b23a48}.shopping-list-row-remove:active{background:#c15a61;background:lab(51.7844% 42.4508 16.6979)}.shopping-list-row-remove:disabled{opacity:.45;cursor:not-allowed}.shopping-list-row-remove:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.shopping-list-row[data-checked=true] .shopping-list-row-label{text-decoration:line-through;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);color:color-mix(in srgb, var(--color-plum) 55%, transparent)}.shopping-list-empty{padding:var(--space-8) var(--space-4)}.shopping-list-empty p{max-width:48ch;color:var(--color-plum);margin:0;font-size:15px;line-height:1.6}.step-list{gap:var(--space-4);flex-direction:column;display:flex}.step-row{gap:var(--space-3);align-items:flex-start;display:flex}.step-num{border:1px solid var(--color-accent);width:26px;height:26px;color:var(--color-plum);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:13px;font-weight:500;display:flex}.step-text{color:var(--color-plum);flex:1;font-size:15px;line-height:1.5}.review{color:var(--color-plum)}.review-meta{gap:var(--space-4);flex-wrap:wrap;display:flex}.review-meta .review-field{flex:1;min-width:120px}.review-save{align-self:center;min-height:36px}.review-hint{margin:0 0 var(--space-3);color:color-mix(in srgb, var(--color-plum) 70%, transparent);font-size:13px;line-height:1.5}.review-field>label{align-items:baseline;gap:var(--space-2);color:var(--color-plum);margin-bottom:var(--space-1);font-size:13px;display:flex}.review-field .input{width:100%}.review-field[data-band=flagged] .input{border-color:var(--color-accent)}.review-field[data-band=requiresInput] .input{border-color:#b23a48;box-shadow:inset 3px 0 #b23a48}.review-flag{color:var(--color-accent);font-size:11px;font-weight:500}.review-required{color:#b23a48}.review-raw{color:color-mix(in srgb, var(--color-plum) 65%, transparent);margin-top:var(--space-1);font-size:12px;display:block}.review-yield{align-items:center;gap:var(--space-2);display:flex}.review-yield .input{width:6ch}.review-yield .input:last-child{flex:1;width:auto}.review-yield span{font-size:13px}.review-ingredient{padding:var(--space-3) 0;border-bottom:1px solid color-mix(in srgb, var(--color-plum) 15%, transparent);gap:var(--space-2);flex-direction:column;display:flex}.review-ingredient-raw{color:var(--color-plum);font-size:15px}.review-ingredient[data-band=flagged] .review-ingredient-raw{color:var(--color-accent)}.review-ingredient-map{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.review-combobox{flex:1;min-width:220px;position:relative}.review-combobox .input{width:100%}.review-options{z-index:10;padding:var(--space-1);background:var(--color-surface);border:1px solid color-mix(in srgb, var(--color-plum) 35%, transparent);border-radius:var(--radius-md);max-height:240px;box-shadow:var(--shadow-md);margin:0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.review-option{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-plum);cursor:pointer;font-size:14px;display:flex}.review-option.is-active{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.review-option-new{font-weight:500}.review-option-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);font-size:10px}.review-nomatch{color:var(--color-plum);align-items:center;gap:6px;font-size:12px;display:inline-flex}.review-blocked,[data-testid=save-error]{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:color-mix(in srgb, #b23a48 14%, var(--color-surface));border-radius:var(--radius-md);color:#7a2531;font-size:14px;display:flex}.review-blocked svg{stroke:#7a2531;flex-shrink:0}.recipes-panel{width:100%;max-width:1100px;margin:0 auto var(--space-8);padding:var(--space-8) var(--space-6);background:var(--color-surface);color:var(--color-plum);gap:var(--space-6);border-radius:10px;flex-direction:column;display:flex}.recipe-library{gap:var(--space-6);flex-direction:column;display:flex}.recipe-search{max-width:360px}.recipe-library-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.recipe-library-toolbar .recipe-search{flex:1}.recipe-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.recipe-card,.recipe-card:hover{text-decoration:none}.recipe-card-source{color:var(--color-plum);opacity:.75;font-size:12px}.recipe-card-selectable{cursor:pointer;position:relative}.recipe-card-select-checkbox{bottom:var(--space-3);right:var(--space-3);z-index:1;width:20px;height:20px;position:absolute}.recipe-card-selected{outline:2px solid var(--color-accent);outline-offset:2px}.recipe-select-bar{bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:10px;max-width:480px;margin:0 auto;display:flex;position:sticky}.recipe-select-bar .recipe-shopping-list-confirm{text-align:center;flex:1}.recipe-empty{padding:var(--space-8) var(--space-4)}.recipe-empty p{max-width:48ch;color:var(--color-plum);margin:0;font-size:15px;line-height:1.6}
