.theme-toggle.svelte-1cmi4dh{color:var(--text-inverse);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-lg);min-width:2.75rem;min-height:2.75rem;transition:opacity var(--duration-fast) var(--ease-out);opacity:.9;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.theme-toggle.svelte-1cmi4dh:hover{opacity:1}.theme-toggle-icon.svelte-1cmi4dh{line-height:1}.nav-logout.svelte-1h32yp1{color:var(--text-inverse);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;opacity:.9;padding:var(--space-1) var(--space-2);transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:none}.nav-logout.svelte-1h32yp1:hover{opacity:1}.nav-link-badge.svelte-1h32yp1{align-items:center;gap:var(--space-1,.25rem);display:inline-flex;position:relative}.badge.svelte-1h32yp1{background:var(--color-accent-500,#c96b33);color:#fff;text-align:center;border-radius:99px;min-width:1.2rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;line-height:1.3}:root{--color-primary-50:#f0faf4;--color-primary-100:#d1f2e0;--color-primary-200:#a3e4c1;--color-primary-300:#6dcf9a;--color-primary-400:#40b87a;--color-primary-500:#2d6a4f;--color-primary-600:#245740;--color-primary-700:#1b4332;--color-primary-800:#133024;--color-primary-900:#0b1f17;--color-accent-50:#fef6f0;--color-accent-100:#fde8d5;--color-accent-200:#f9c9a3;--color-accent-300:#f4a66e;--color-accent-400:#e8854a;--color-accent-500:#c96b33;--color-accent-600:#a85628;--color-accent-700:#7d3f1d;--color-neutral-0:#fff;--color-neutral-50:#fafaf8;--color-neutral-100:#f3f2ef;--color-neutral-200:#e5e3de;--color-neutral-300:#d1cfc8;--color-neutral-400:#a8a59e;--color-neutral-500:#7c7972;--color-neutral-600:#5a5752;--color-neutral-700:#3d3b37;--color-neutral-800:#27251f;--color-neutral-900:#141310;--color-success:#2d6a4f;--color-warning:#d4a017;--color-error:#c0392b;--color-info:#2980b9;--surface-page:var(--color-neutral-50);--surface-card:var(--color-neutral-0);--surface-input:var(--color-neutral-0);--text-primary:var(--color-neutral-800);--text-secondary:var(--color-neutral-500);--text-heading:var(--color-neutral-700);--text-inverse:var(--color-neutral-0);--text-link:var(--color-primary-500);--text-link-hover:var(--color-primary-700);--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif:Georgia, "Times New Roman", Times, serif;--font-mono:ui-monospace, "Cascadia Code", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-cook-step:1.75rem;--text-cook-step-lg:2.25rem;--text-cook-counter:1.125rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.7;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-card:0 1px 3px #0000000f, 0 1px 2px #0000000a;--ease-out:cubic-bezier(.33, 1, .68, 1);--duration-fast:.12s;--duration-normal:.2s;--container-max:72rem;--nav-height:3.5rem;transition:background-color .2s,color .2s}@media (prefers-color-scheme:dark){:root:not(.light):not(.dark){--surface-page:#1a1a17;--surface-card:#252521;--surface-input:#2e2e28;--text-primary:#ededea;--text-secondary:#9c9a94;--text-heading:#f0efec;--text-inverse:#1a1a17;--text-link:#6dcf9a;--text-link-hover:#a3e4c1;--color-primary-500:#40b87a;--color-accent-500:#e8854a;--color-neutral-200:#3a3a34;--color-neutral-300:#4a4a43;--color-neutral-400:#6a6a62;--color-error:#e74c3c;--color-warning:#f0c040;--color-info:#5dade2;--shadow-sm:0 1px 2px #0003;--shadow-md:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #00000059;--shadow-card:0 1px 3px #00000040}}:root.dark{--surface-page:#1a1a17;--surface-card:#252521;--surface-input:#2e2e28;--text-primary:#ededea;--text-secondary:#9c9a94;--text-heading:#f0efec;--text-inverse:#1a1a17;--text-link:#6dcf9a;--text-link-hover:#a3e4c1;--color-primary-500:#40b87a;--color-accent-500:#e8854a;--color-neutral-200:#3a3a34;--color-neutral-300:#4a4a43;--color-neutral-400:#6a6a62;--color-error:#e74c3c;--color-warning:#f0c040;--color-info:#5dade2;--shadow-sm:0 1px 2px #0003;--shadow-md:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #00000059;--shadow-card:0 1px 3px #00000040}:root.light{--surface-page:var(--color-neutral-50);--surface-card:var(--color-neutral-0);--surface-input:var(--color-neutral-0);--text-primary:#27251f;--text-secondary:#7c7972;--text-heading:#3d3b37;--text-inverse:#fff;--text-link:#2d6a4f;--text-link-hover:#1b4332;--color-primary-500:#2d6a4f;--color-accent-500:#c96b33;--color-neutral-200:#e5e3de;--color-neutral-300:#d1cfc8;--color-neutral-400:#a8a59e;--color-error:#c0392b;--color-warning:#d4a017;--color-info:#2980b9;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-card:0 1px 3px #0000000f, 0 1px 2px #0000000a}*,:before,:after{box-sizing:border-box;margin:0}html{font-family:var(--font-sans);font-size:100%;line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh}img{max-width:100%;height:auto;display:block}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.container{width:100%;max-width:var(--container-max);padding-inline:var(--space-4);margin-inline:auto}@media (width>=640px){.container{padding-inline:var(--space-6)}}.nav{z-index:100;height:var(--nav-height);padding-inline:var(--space-4);background-color:var(--color-primary-700);color:var(--text-inverse);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav a{color:var(--text-inverse);font-size:var(--text-sm);font-weight:var(--font-weight-medium);opacity:.9;transition:opacity var(--duration-fast) var(--ease-out)}.nav a:hover{opacity:1;text-decoration:none}.nav-brand{font-size:var(--text-lg);font-weight:var(--font-weight-bold);letter-spacing:-.01em;opacity:1}.nav-links{align-items:center;gap:var(--space-4);display:flex}.nav-toggle{color:var(--text-inverse);cursor:pointer;padding:var(--space-2);background:0 0;border:none;justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem;display:none}@media (width<=639px){.nav-links{display:none}.nav-links.open{top:var(--nav-height);background-color:var(--color-primary-700);padding:var(--space-4);box-shadow:var(--shadow-lg);z-index:99;flex-direction:column;display:flex;position:absolute;left:0;right:0}.nav-toggle{display:flex}}h1,h2,h3,h4{color:var(--text-heading);line-height:var(--leading-tight);font-weight:var(--font-weight-semibold)}h1{font-size:var(--text-3xl);margin-bottom:var(--space-4)}h2{font-size:var(--text-2xl);margin-bottom:var(--space-3)}h3{font-size:var(--text-xl);margin-bottom:var(--space-2)}p{margin-bottom:var(--space-3);color:var(--text-primary)}.text-secondary{color:var(--text-secondary);font-size:var(--text-sm)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-family:inherit;font-size:var(--text-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;min-height:2.75rem;line-height:1;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary-500);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-600);box-shadow:var(--shadow-md)}.btn-accent{background-color:var(--color-accent-500);color:var(--text-inverse)}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-600);box-shadow:var(--shadow-md)}.btn-ghost{color:var(--text-primary);border-color:var(--color-neutral-200);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-neutral-100)}.btn-danger{background-color:var(--color-error);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){opacity:.9}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg);border-radius:var(--radius-lg);min-height:3.25rem}.input,.textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:inherit;font-size:var(--text-base);color:var(--text-primary);background-color:var(--surface-input);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);min-height:2.75rem;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.input::placeholder,.textarea::placeholder{color:var(--color-neutral-400)}.input:focus,.textarea:focus{border-color:var(--color-primary-500);outline:none;box-shadow:0 0 0 3px #2d6a4f26}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px #c0392b26}.input-url{font-size:var(--text-lg);padding:var(--space-4) var(--space-5)}.form-group{margin-bottom:var(--space-5)}.form-label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-heading);display:block}.form-error{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-error)}.url-form{gap:var(--space-2);max-width:36rem;margin-inline:auto;display:flex}.url-form .input-url{flex:1}.tag{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-primary-700);background-color:var(--color-primary-50);border-radius:var(--radius-full);white-space:nowrap;line-height:1.5;display:inline-flex}.tag-remove{width:1rem;height:1rem;color:inherit;opacity:.6;cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tag-remove:hover{opacity:1}.tag-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.card{background-color:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);overflow:hidden}.recipe-card{color:inherit;flex-direction:column;text-decoration:none;display:flex}.recipe-card:hover{color:inherit;box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.recipe-card-img{aspect-ratio:16/10;object-fit:cover;background-color:var(--color-neutral-100);width:100%}.recipe-card-no-img{aspect-ratio:16/10;background-color:var(--color-primary-50);color:var(--color-primary-300);font-size:var(--text-4xl);justify-content:center;align-items:center;display:flex}.recipe-card-body{padding:var(--space-4);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.recipe-card-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-heading);line-height:var(--leading-tight);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.recipe-card-meta{gap:var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);margin-top:auto;display:flex}.recipe-grid{gap:var(--space-5);padding-block:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));display:grid}.recipe-header{padding-block:var(--space-8)}.recipe-title{font-size:var(--text-3xl);margin-bottom:var(--space-3)}.recipe-meta{gap:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.recipe-meta-item{align-items:center;gap:var(--space-1);display:flex}.recipe-source{font-size:var(--text-sm);color:var(--text-secondary)}.recipe-content{gap:var(--space-8);display:grid}@media (width>=768px){.recipe-content{grid-template-columns:1fr 2fr}}.ingredient-list{padding:0;list-style:none}.ingredient-list li{padding:var(--space-2) 0;font-size:var(--text-lg);border-bottom:1px solid var(--color-neutral-200)}.ingredient-list li:last-child{border-bottom:none}.ingredient-amount{font-weight:var(--font-weight-semibold)}.step-list{counter-reset:steps;padding:0;list-style:none}.step-list li{counter-increment:steps;padding:var(--space-4) 0;padding-left:var(--space-10);border-bottom:1px solid var(--color-neutral-200);position:relative}.step-list li:before{content:counter(steps);left:0;top:var(--space-4);background-color:var(--color-primary-50);width:1.75rem;height:1.75rem;color:var(--color-primary-500);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex;position:absolute}.serving-control{align-items:center;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-neutral-100);border-radius:var(--radius-md);margin-bottom:var(--space-6);display:flex}.serving-control input[type=range]{accent-color:var(--color-primary-500);flex:1}.serving-count{font-weight:var(--font-weight-bold);font-size:var(--text-xl);text-align:center;min-width:2rem}.cook-mode{background-color:var(--surface-page);min-height:100dvh;padding:var(--space-4);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.cook-mode-header{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-neutral-200);justify-content:space-between;align-items:center;display:flex}.cook-mode-header a,.cook-mode-header button{min-width:2.75rem;min-height:2.75rem}.cook-mode-step{text-align:center;padding:var(--space-8) var(--space-4);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.cook-mode-counter{font-size:var(--text-cook-counter);color:var(--text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-6);letter-spacing:.02em;text-transform:uppercase}.cook-mode-text{font-size:var(--text-cook-step);line-height:var(--leading-relaxed);max-width:40rem;color:var(--text-primary);font-weight:var(--font-weight-normal)}@media (width>=768px){.cook-mode-text{font-size:var(--text-cook-step-lg)}}.cook-mode-nav{gap:var(--space-4);padding-top:var(--space-6);justify-content:center;display:flex}.cook-mode-nav .btn{max-width:12rem;min-height:3.5rem;font-size:var(--text-lg);border-radius:var(--radius-lg);flex:1}.cook-mode-dots{justify-content:center;gap:var(--space-2);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.cook-mode-dot{border-radius:var(--radius-full);border:2px solid var(--color-neutral-300);width:2.5rem;height:2.5rem;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;padding:0;font-family:inherit;display:flex}.cook-mode-dot:hover{border-color:var(--color-primary-500);color:var(--color-primary-500)}.cook-mode-dot[aria-current=step]{background-color:var(--color-primary-500);border-color:var(--color-primary-500);color:var(--text-inverse)}.cook-mode-ingredients{padding:var(--space-6);background-color:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:30rem;box-shadow:var(--shadow-lg);margin-inline:auto}.cook-mode-ingredients li{padding:var(--space-2) 0;font-size:var(--text-lg);border-bottom:1px solid var(--color-neutral-200)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-4)}.alert-error{color:var(--color-error);background-color:#fef2f2;border:1px solid #fecaca}.alert-success{background-color:var(--color-primary-50);color:var(--color-primary-700);border:1px solid var(--color-primary-200)}:root.dark .alert-error,:root:not(.light):not(.dark) .alert-error{background-color:#2d1b1b;border-color:#5c2828}:root.dark .alert-success,:root:not(.light):not(.dark) .alert-success{background-color:#1a2e22;border-color:#2d5a40}@media (prefers-color-scheme:dark){:root:not(.light):not(.dark) .alert-error{background-color:#2d1b1b;border-color:#5c2828}:root:not(.light):not(.dark) .alert-success{background-color:#1a2e22;border-color:#2d5a40}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hero{text-align:center;padding-block:var(--space-16) var(--space-12);max-width:36rem;margin-inline:auto}.hero h1{font-size:var(--text-4xl);margin-bottom:var(--space-4)}.hero p{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-8)}.auth-page{max-width:24rem;padding-block:var(--space-12);margin-inline:auto}.auth-page h1{text-align:center}.auth-page .btn{width:100%;margin-top:var(--space-2)}.skeleton{background:linear-gradient(90deg, var(--color-neutral-200) 25%, var(--color-neutral-100) 50%, var(--color-neutral-200) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}
