@import url(https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap);code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--ink:#1a1815;--ink-hover:#2a2620;--ink-soft:#1a18150f;--saffron:#c19a3d;--saffron-hover:#ad8633;--saffron-soft:#c19a3d1f;--success:#4a9d6e;--success-soft:#4a9d6e1f;--warning:#d4a04a;--warning-soft:#d4a04a1f;--danger:#c85544;--danger-hover:#b3473a;--danger-soft:#c855441f;--neutral-0:#fff;--neutral-50:#faf8f5;--neutral-100:#f3efe9;--neutral-200:#e6e0d6;--neutral-300:#cdc4b5;--neutral-400:#ada392;--neutral-500:#8a8073;--neutral-600:#635a4f;--neutral-700:#4a443c;--neutral-800:#2a2622;--neutral-900:#1a1815;--neutral-950:#0e0c0a;--macro-protein:#4a9d6e;--macro-carbs:#6889b8;--macro-fat:#c8814a;--surface-base:var(--neutral-950);--surface-raised:var(--neutral-900);--surface-overlay:#1a1815d9;--surface-sunken:var(--neutral-950);--text-primary:var(--neutral-100);--text-secondary:var(--neutral-400);--text-muted:var(--neutral-500);--text-disabled:var(--neutral-600);--text-on-ink:var(--neutral-50);--text-on-saffron:var(--neutral-950);--border-subtle:var(--neutral-800);--border-default:var(--neutral-700);--border-strong:var(--neutral-600);--border-focus:var(--saffron);--shadow-flat:none;--shadow-raised:0 1px 2px #0006,0 2px 4px #0003;--shadow-floating:0 8px 24px #00000080,0 2px 6px #0000004d;--shadow-inset:inset 0 1px 2px #0000004d;--font-display:"Fraunces",Georgia,"Source Serif Pro",serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","SF Mono",Menlo,monospace;--text-xs:12px;--leading-xs:16px;--text-sm:14px;--leading-sm:20px;--text-base:15px;--leading-base:24px;--text-lg:18px;--leading-lg:28px;--text-xl:24px;--leading-xl:32px;--text-2xl:32px;--leading-2xl:40px;--text-3xl:44px;--leading-3xl:52px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.04em;--tracking-caps:0.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--duration-fast:120ms;--duration-normal:200ms;--duration-slow:320ms;--ease:cubic-bezier(0.2,0.8,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--max-width:1200px;--content-width:760px;--sidebar-width:240px;--header-height:56px;--mobile-nav-height:64px;--color-primary:var(--ink);--color-primary-hover:var(--ink-hover);--color-primary-light:var(--saffron-soft);--color-danger:var(--danger);--color-danger-hover:var(--danger-hover);--color-success:var(--success);--color-macro-protein:var(--macro-protein);--color-macro-carbs:var(--macro-carbs);--color-macro-fat:var(--macro-fat);--bg-body:var(--surface-base);--bg-surface:var(--surface-raised);--bg-surface-alt:var(--neutral-800);--bg-input:var(--surface-raised);--bg-header:var(--neutral-950);--bg-nav:var(--neutral-900);--bg-footer:var(--neutral-950);--bg-badge:var(--saffron-soft);--bg-empty:var(--neutral-800);--text-on-dark:var(--text-primary);--text-on-primary:var(--text-on-ink);--text-brand:var(--saffron);--border-color:var(--border-subtle);--border-input:var(--border-default);--shadow-sm:var(--shadow-raised);--shadow-md:var(--shadow-raised);--shadow-lg:var(--shadow-floating);--font-brand:var(--font-display);--transition:var(--duration-normal) var(--ease)}.light-mode{--surface-base:var(--neutral-50);--surface-raised:var(--neutral-0);--surface-overlay:#ffffffeb;--surface-sunken:var(--neutral-100);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-600);--text-muted:var(--neutral-500);--text-disabled:var(--neutral-400);--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--neutral-400);--shadow-raised:0 1px 2px #1a18150f,0 2px 6px #1a18150a;--shadow-floating:0 8px 24px #1a18151a,0 2px 6px #1a18150f;--shadow-inset:inset 0 1px 2px #1a18150a;--macro-protein:#2d7d4a;--macro-carbs:#2d5a8c;--macro-fat:#a85a2a;--bg-body:var(--surface-base);--bg-surface:var(--surface-raised);--bg-surface-alt:var(--neutral-100);--bg-input:var(--surface-raised);--bg-header:var(--neutral-950);--bg-nav:var(--neutral-50);--bg-empty:var(--neutral-100);--bg-badge:var(--saffron-soft);--color-success:#2d7d4a;--text-on-dark:var(--neutral-50);--text-brand:#9c7a26;--border-color:var(--border-subtle);--border-input:var(--border-default)}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);line-height:1.6;margin:0;transition:background-color .2s cubic-bezier(.2,.8,.2,1),color .2s cubic-bezier(.2,.8,.2,1);transition:background-color var(--transition),color var(--transition)}.app-root,body{background-color:#0e0c0a;background-color:var(--bg-body);color:#f3efe9;color:var(--text-primary)}.app-root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top)}.app-body{display:flex;flex:1 1;overflow:hidden}.app-main{-webkit-overflow-scrolling:touch;flex:1 1;min-width:0;overflow-y:auto;padding:24px 24px calc(24px + env(safe-area-inset-bottom))}.skip-link{background:#1a1815;background:var(--ink);border-radius:6px;border-radius:var(--radius-sm);color:#faf8f5;color:var(--text-on-ink);font-size:14px;font-weight:600;left:16px;padding:8px 16px;position:absolute;text-decoration:none;top:-100%;transition:top .1s;z-index:9999}.skip-link:focus{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px;top:8px}.app-header{background:#0e0c0a;background:var(--neutral-950);border-bottom:1px solid #2a2622;border-bottom:1px solid var(--neutral-800);flex-shrink:0;height:56px;height:var(--header-height);justify-content:space-between;padding:0 16px;padding:0 var(--space-4);padding-left:max(16px,env(safe-area-inset-left));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-right:max(var(--space-4),env(safe-area-inset-right));z-index:20}.app-header,.header-brand{align-items:center;display:flex}.header-brand{gap:12px;gap:var(--space-3);text-decoration:none}.btn-sidebar-toggle{align-items:center;background:#0000;border:none;border-radius:10px;border-radius:var(--radius-md);color:#ada392;color:var(--neutral-400);cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;padding:0;transition:background .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease);width:36px}.btn-sidebar-toggle:hover{background:#ffffff0f;color:#f3efe9;color:var(--neutral-100)}.btn-sidebar-toggle:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}.sidebar-toggle-bar{background:currentColor;border-radius:2px;display:block;height:2px;width:16px}.header-monogram{align-items:center;background:#c19a3d;background:var(--saffron);border-radius:10px;border-radius:var(--radius-md);color:#0e0c0a;color:var(--neutral-950);display:flex;flex-shrink:0;font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:13px;font-variation-settings:"opsz" 16;font-weight:600;font-weight:var(--weight-semibold);height:30px;justify-content:center;letter-spacing:-.5px;line-height:1;width:30px}.header-title{color:#f3efe9;color:var(--neutral-100);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:15px;font-size:var(--text-base);font-variation-settings:"opsz" 24;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight);margin:0}.header-sync-indicator{align-items:center;display:flex;gap:8px;gap:var(--space-2)}.header-sync-dot{border-radius:50%;flex-shrink:0;height:7px;transition:background .2s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-normal) var(--ease);width:7px}.header-sync-label{color:#8a8073;color:var(--neutral-500);font-size:12px;font-size:var(--text-xs);font-weight:500;font-weight:var(--weight-medium);white-space:nowrap}.app-nav{background:#0e0c0a;background:var(--neutral-950);border-right:1px solid #2a2622;border-right:1px solid var(--neutral-800);display:flex;flex-direction:column;flex-shrink:0;min-width:240px;min-width:var(--sidebar-width);overflow-x:hidden;overflow-y:auto;scrollbar-color:#ffffff12 #0000;scrollbar-width:thin;transition:width .2s cubic-bezier(.2,.8,.2,1),min-width .2s cubic-bezier(.2,.8,.2,1);transition:width var(--duration-normal) var(--ease),min-width var(--duration-normal) var(--ease);width:240px;width:var(--sidebar-width)}.app-nav::-webkit-scrollbar{width:3px}.app-nav::-webkit-scrollbar-track{background:#0000}.app-nav::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.app-nav::-webkit-scrollbar-thumb:hover{background:#ffffff24}.light-mode .app-nav{background:#faf8f5;background:var(--neutral-50);border-right-color:#e6e0d6;border-right-color:var(--neutral-200);scrollbar-color:#0000001a #0000}.light-mode .app-nav::-webkit-scrollbar-thumb{background:#0000001a}.light-mode .app-nav::-webkit-scrollbar-thumb:hover{background:#0000002e}.app-nav.nav-collapsed{border-right:none;min-width:0;width:0}@media (max-width:768px){.app-nav{border-right:1px solid #2a2622;border-right:1px solid var(--neutral-800);height:calc(100vh - 56px);height:calc(100vh - var(--header-height));left:0;position:fixed;top:56px;top:var(--header-height);transform:translateX(0);transition:transform .2s cubic-bezier(.2,.8,.2,1);transition:transform var(--duration-normal) var(--ease);z-index:50}.app-nav,.app-nav.nav-collapsed{min-width:240px;min-width:var(--sidebar-width);width:240px;width:var(--sidebar-width)}.app-nav.nav-collapsed{transform:translateX(-100%)}}.nav-backdrop{display:none}@media (max-width:768px){.nav-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;display:block;inset:0;position:fixed;top:56px;top:var(--header-height);z-index:40}}.nav-group{padding:16px 0 8px;padding:var(--space-4) 0 var(--space-2) 0}.nav-group+.nav-group{border-top:1px solid #2a2622;border-top:1px solid var(--neutral-800)}.light-mode .nav-group+.nav-group{border-top-color:#e6e0d6;border-top-color:var(--neutral-200)}.nav-group-label{color:#635a4f;color:var(--neutral-600);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:10px;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.08em;letter-spacing:var(--tracking-caps);padding:0 12px 8px;padding:0 var(--space-3) var(--space-2) var(--space-3);text-transform:uppercase}.nav-list{list-style:none;margin:0;padding:0}.nav-link{align-items:center;border-left:2px solid #0000;color:#8a8073;color:var(--neutral-500);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:14px;font-size:var(--text-sm);font-weight:500;font-weight:var(--weight-medium);gap:8px;gap:var(--space-2);padding:8px 12px;padding:var(--space-2) var(--space-3);text-decoration:none;transition:color .12s cubic-bezier(.2,.8,.2,1),background .12s cubic-bezier(.2,.8,.2,1),border-color .12s cubic-bezier(.2,.8,.2,1);transition:color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease);white-space:nowrap}.nav-link-icon{flex-shrink:0;opacity:.7;transition:opacity .12s cubic-bezier(.2,.8,.2,1);transition:opacity var(--duration-fast) var(--ease)}.nav-link:hover{background:#ffffff0a;color:#f3efe9;color:var(--neutral-100)}.nav-link:hover .nav-link-icon{opacity:1}.nav-link.active{background:#c19a3d1f;background:var(--saffron-soft);border-left-color:#c19a3d;border-left-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.nav-link.active .nav-link-icon{opacity:1}.light-mode .nav-link{color:#635a4f;color:var(--neutral-600)}.light-mode .nav-link:hover{background:#f3efe9;background:var(--neutral-100);color:#1a1815;color:var(--neutral-900)}.light-mode .nav-link.active{background:#c19a3d1f;background:var(--saffron-soft);color:#ad8633;color:var(--saffron-hover)}.nav-link:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:-2px}.nav-link-locked{opacity:.4}.nav-lock-badge{border-radius:9999px;border-radius:var(--radius-full);font-size:9px;letter-spacing:.06em;margin-left:auto;padding:1px 8px;padding:1px var(--space-2)}.nav-lock-badge,.nav-tier-badge{background:#c19a3d1f;background:var(--saffron-soft);color:#c19a3d;color:var(--saffron);font-weight:600;font-weight:var(--weight-semibold);text-transform:uppercase}.nav-tier-badge{border:1px solid #c19a3d1f;border:1px solid var(--saffron-soft);border-radius:6px;border-radius:var(--radius-sm);font-size:12px;font-size:var(--text-xs);letter-spacing:.08em;letter-spacing:var(--tracking-caps);margin-bottom:8px;margin-bottom:var(--space-2);padding:8px 0;padding:var(--space-2) 0;text-align:center}.nav-footer{border-top:1px solid #2a2622;border-top:1px solid var(--neutral-800);margin-top:auto;padding:12px;padding:var(--space-3) var(--space-3);padding-bottom:calc(12px + env(safe-area-inset-bottom));padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}.btn-theme-toggle{align-items:center;background:#0000;border:1px solid #2a2622;border:1px solid var(--neutral-800);border-radius:10px;border-radius:var(--radius-md);color:#8a8073;color:var(--neutral-500);cursor:pointer;display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);justify-content:space-between;letter-spacing:.08em;letter-spacing:var(--tracking-caps);padding:8px 12px;padding:var(--space-2) var(--space-3);text-transform:uppercase;transition:border-color .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1),background .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease);width:100%}.btn-theme-toggle:hover{background:#c19a3d1f;background:var(--saffron-soft);border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.light-mode .btn-theme-toggle{border-color:#cdc4b5;border-color:var(--neutral-300);color:#635a4f;color:var(--neutral-600)}.light-mode .btn-theme-toggle:hover{border-color:#ad8633;border-color:var(--saffron-hover);color:#ad8633;color:var(--saffron-hover)}.page-container{background:#0000;margin-bottom:24px;padding:0}.page-title{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-subtle);color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:32px;font-size:var(--text-2xl);font-variation-settings:"opsz" 96;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight);line-height:40px;line-height:var(--leading-2xl);margin:0 0 24px;margin:0 0 var(--space-5) 0;padding-bottom:16px;padding-bottom:var(--space-4);text-align:left}.page-subtitle{font-size:14px;font-size:var(--text-sm);line-height:20px;line-height:var(--leading-sm);margin:-16px 0 24px;margin:calc(var(--space-4)*-1) 0 var(--space-5) 0}.page-subtitle,.section-title{color:#ada392;color:var(--text-secondary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body)}.section-title{font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.08em;letter-spacing:var(--tracking-caps);margin:0 0 12px;margin:0 0 var(--space-3) 0;text-transform:uppercase}.form-group{margin-bottom:16px;margin-bottom:var(--space-4)}.form-label{color:#ada392;color:var(--text-secondary);display:block;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.08em;letter-spacing:var(--tracking-caps);margin-bottom:8px;margin-bottom:var(--space-2);text-transform:uppercase}.form-label-inline{font-size:14px;font-size:var(--text-sm);font-weight:500;font-weight:var(--weight-medium)}.form-label-inline,input,option,select,textarea{color:#f3efe9;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body)}input,option,select,textarea{font-size:15px;font-size:var(--text-base)}select option{background:#1a1815;background:var(--surface-raised);color:#f3efe9;color:var(--text-primary)}input[type=date]{color-scheme:dark}.light-mode input[type=date]{color-scheme:light}input[type=range]{accent-color:#c19a3d;accent-color:var(--saffron)}.form-input{background:#1a1815;background:var(--surface-raised);border:1px solid #4a443c;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);box-shadow:inset 0 1px 2px #0000004d;box-shadow:var(--shadow-inset);box-sizing:border-box;color:#f3efe9;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:15px;font-size:var(--text-base);line-height:24px;line-height:var(--leading-base);min-height:44px;padding:8px 12px;padding:var(--space-2) var(--space-3);transition:border-color .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-normal) var(--ease),box-shadow var(--duration-normal) var(--ease);width:100%}.form-input:focus{border-color:#c19a3d;border-color:var(--saffron);box-shadow:0 0 0 3px #c19a3d1f;box-shadow:0 0 0 3px var(--saffron-soft);outline:none}.form-input::placeholder{color:#8a8073;color:var(--text-muted)}.form-input[type=number]{-moz-appearance:textfield}.form-input[type=number]::-webkit-inner-spin-button,.form-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-input-sm{font-size:14px;font-size:var(--text-sm);min-height:36px;width:100px}.form-select{background:#1a1815;background:var(--surface-raised);border:1px solid #4a443c;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:15px;font-size:var(--text-base);min-height:44px;padding:8px 12px;padding:var(--space-2) var(--space-3);transition:border-color .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-normal) var(--ease)}.form-select:focus{border-color:#c19a3d;border-color:var(--saffron);box-shadow:0 0 0 3px #c19a3d1f;box-shadow:0 0 0 3px var(--saffron-soft);outline:none}.form-textarea{background:#1a1815;background:var(--surface-raised);border:1px solid #4a443c;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);box-shadow:inset 0 1px 2px #0000004d;box-shadow:var(--shadow-inset);box-sizing:border-box;color:#f3efe9;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:15px;font-size:var(--text-base);line-height:24px;line-height:var(--leading-base);min-height:88px;padding:8px 12px;padding:var(--space-2) var(--space-3);resize:vertical;transition:border-color .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-normal) var(--ease);width:100%}.form-textarea:focus{border-color:#c19a3d;border-color:var(--saffron);box-shadow:0 0 0 3px #c19a3d1f;box-shadow:0 0 0 3px var(--saffron-soft);outline:none}.form-row{align-items:end;display:flex;flex-wrap:wrap;gap:12px}.form-help{color:#8a8073;color:var(--text-muted);font-size:12px;margin-top:4px}.input-with-btn{display:flex;gap:8px}.input-with-btn .form-input{flex:1 1}.btn{-webkit-tap-highlight-color:transparent;align-items:center;border:1px solid #0000;border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:14px;font-size:var(--text-sm);font-weight:500;font-weight:var(--weight-medium);gap:8px;gap:var(--space-2);justify-content:center;letter-spacing:.01em;min-height:44px;padding:0 24px;padding:0 var(--space-5);text-decoration:none;transition:background .12s cubic-bezier(.2,.8,.2,1),border-color .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1),transform .12s cubic-bezier(.2,.8,.2,1),box-shadow .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.45;pointer-events:none}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:#1a1815;background:var(--ink);background-image:linear-gradient(180deg,#2a2622,#1a1815);background-image:linear-gradient(180deg,var(--neutral-800) 0,var(--ink) 100%);border-color:#4a443c;border-color:var(--neutral-700);color:#faf8f5;color:var(--neutral-50)}.btn-primary:hover:not(:disabled){background:#2a2620;background:var(--ink-hover);background-image:linear-gradient(180deg,#4a443c,#2a2622);background-image:linear-gradient(180deg,var(--neutral-700) 0,var(--neutral-800) 100%);box-shadow:0 1px 2px #0006,0 2px 4px #0003;box-shadow:var(--shadow-raised);transform:translateY(-1px)}.btn-secondary{background:#1a1815;background:var(--surface-raised);border-color:#4a443c;border-color:var(--border-default);color:#f3efe9;color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:#c19a3d1f;background:var(--saffron-soft);border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.btn-ghost{background:#0000;color:#ada392;color:var(--text-secondary);padding:0 12px;padding:0 var(--space-3)}.btn-ghost:hover:not(:disabled){background:#1a18150f;background:var(--ink-soft);color:#f3efe9;color:var(--text-primary)}.btn-danger{background:#c85544;background:var(--danger);background-image:linear-gradient(180deg,#d4645a,#c85544);background-image:linear-gradient(180deg,#d4645a 0,var(--danger) 100%);border-color:#b3473a;border-color:var(--danger-hover);color:#fff}.btn-danger:hover:not(:disabled){background:#b3473a;background:var(--danger-hover);background-image:none;box-shadow:0 1px 2px #0006,0 2px 4px #0003;box-shadow:var(--shadow-raised);transform:translateY(-1px)}.btn-sm{font-size:var(--text-xs);min-height:36px;padding:0 12px;padding:0 var(--space-3)}.btn-lg{border-radius:14px;border-radius:var(--radius-lg);font-size:15px;font-size:var(--text-base);font-weight:600;font-weight:var(--weight-semibold);min-height:52px;padding:0 32px;padding:0 var(--space-6)}.btn-block{width:100%}.btn-icon{border-radius:10px;border-radius:var(--radius-md);min-height:44px;padding:0;width:44px}.btn-icon.btn-sm{min-height:36px;width:36px}.btn-loading{color:#0000!important;pointer-events:none;position:relative}.btn-loading:after{animation:btn-spin .32s linear infinite;animation:btn-spin var(--duration-slow) linear infinite;border:2px solid;border-radius:50%;border-top:2px solid #0000;color:inherit;content:"";height:16px;position:absolute;width:16px}.btn-primary.btn-loading:after{color:#faf8f5;color:var(--neutral-50)}.btn-ghost.btn-loading:after,.btn-secondary.btn-loading:after{color:#ada392;color:var(--text-secondary)}@keyframes btn-spin{to{transform:rotate(1turn)}}.btn-group{display:flex;flex-wrap:wrap;gap:8px;gap:var(--space-2)}.card{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:14px;border-radius:var(--radius-lg);margin-bottom:12px;margin-bottom:var(--space-3);padding:16px;padding:var(--space-4);transition:box-shadow .2s cubic-bezier(.2,.8,.2,1),border-color .2s cubic-bezier(.2,.8,.2,1),transform .2s cubic-bezier(.2,.8,.2,1);transition:box-shadow var(--duration-normal) var(--ease),border-color var(--duration-normal) var(--ease),transform var(--duration-normal) var(--ease)}.card:hover{border-color:#4a443c;border-color:var(--border-default);box-shadow:0 1px 2px #0006,0 2px 4px #0003;box-shadow:var(--shadow-raised);transform:translateY(-1px)}.card-feed{overflow:hidden;padding:0}.card-feed .card-image{aspect-ratio:4/5;background:#0e0c0a;background:var(--surface-sunken);display:block;object-fit:cover;width:100%}.card-feed .card-content{padding:12px 16px 16px;padding:var(--space-3) var(--space-4) var(--space-4)}.card-data{display:flex;flex-direction:column;gap:4px;gap:var(--space-1)}.card-data .card-data-label{color:#ada392;color:var(--text-secondary);font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.08em;letter-spacing:var(--tracking-caps);text-transform:uppercase}.card-data .card-data-value{font-feature-settings:"tnum";color:#f3efe9;color:var(--text-primary);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-family:var(--font-mono);font-size:24px;font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight)}.card-data .card-data-delta{color:#8a8073;color:var(--text-muted);font-size:12px;font-size:var(--text-xs)}.card-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:4px 0;padding:var(--space-1) 0;-webkit-user-select:none;user-select:none}.card-title{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-variation-settings:"opsz" 32;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight);margin:0}.card-expand-icon{color:#8a8073;color:var(--text-muted);font-size:18px;transition:transform .2s cubic-bezier(.2,.8,.2,1);transition:transform var(--transition)}.card-expand-icon.expanded{transform:rotate(180deg)}.card-body{border-top:1px solid #2a2622;border-top:1px solid var(--border-subtle);margin-top:12px;margin-top:var(--space-3);padding-top:12px;padding-top:var(--space-3)}.card-detail{align-items:baseline;color:#ada392;color:var(--text-secondary);display:flex;font-size:14px;font-size:var(--text-sm);justify-content:space-between;padding:4px 0;padding:var(--space-1) 0}.card-detail-label{color:#f3efe9;color:var(--text-primary);font-weight:500;font-weight:var(--weight-medium)}.card-actions{border-top:1px solid #2a2622;border-top:1px solid var(--border-subtle);display:flex;gap:8px;gap:var(--space-2);margin-top:12px;margin-top:var(--space-3);padding-top:12px;padding-top:var(--space-3)}.list-item{align-items:center;background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--space-2);padding:12px 16px;padding:var(--space-3) var(--space-4);transition:background .12s cubic-bezier(.2,.8,.2,1),border-color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.list-item:hover{background:#2a2622;background:var(--neutral-800);border-color:#4a443c;border-color:var(--border-default)}.light-mode .list-item:hover{background:#f3efe9;background:var(--neutral-100)}.list-item-name{color:#f3efe9;color:var(--text-primary);font-size:15px;font-size:var(--text-base);font-weight:500;font-weight:var(--weight-medium)}.list-item-qty{font-feature-settings:"tnum";background:#0e0c0a;background:var(--surface-sunken);border-radius:9999px;border-radius:var(--radius-full);color:#ada392;color:var(--text-secondary);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-family:var(--font-mono);font-size:14px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding:2px 12px;padding:2px var(--space-3)}.empty-state{padding:48px 24px;padding:var(--space-7) var(--space-5);text-align:center}.empty-state,.empty-state-icon{color:#8a8073;color:var(--text-muted)}.empty-state-icon{display:flex;justify-content:center;margin-bottom:12px;margin-bottom:var(--space-3);opacity:.35}.empty-state-heading{color:#ada392;color:var(--text-secondary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-variation-settings:"opsz" 32;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight);margin:0 0 8px;margin:0 0 var(--space-2) 0}.empty-state-text{color:#8a8073;color:var(--text-muted);font-size:14px;font-size:var(--text-sm);line-height:20px;line-height:var(--leading-sm);margin:0}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{animation:skeleton-pulse 1.6s cubic-bezier(.2,.8,.2,1) infinite;animation:skeleton-pulse 1.6s var(--ease) infinite;background:#2a2622;background:var(--border-subtle)}.skeleton,.skeleton-text{border-radius:6px;border-radius:var(--radius-sm)}.skeleton-text{height:14px;margin-bottom:8px;margin-bottom:var(--space-2)}.skeleton-text.skeleton-lg{height:20px}.skeleton-text.skeleton-sm{height:12px}.skeleton-avatar{border-radius:9999px;border-radius:var(--radius-full);flex-shrink:0}.skeleton-card{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:14px;border-radius:var(--radius-lg);padding:16px;padding:var(--space-4)}.skeleton-card,.skeleton-card-image{margin-bottom:12px;margin-bottom:var(--space-3)}.skeleton-card-image{aspect-ratio:4/5;border-radius:10px;border-radius:var(--radius-md);width:100%}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-container{animation:fadeUp .2s cubic-bezier(.2,.8,.2,1) both;animation:fadeUp .2s var(--ease) both}.feed-card{animation:fadeUp .18s cubic-bezier(.2,.8,.2,1) both;animation:fadeUp .18s var(--ease) both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.skeleton{animation:none;opacity:.5}}.catalog-section{margin-top:32px}.catalog-header{align-items:center;border-bottom:2px solid #2a2622;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.catalog-title{color:#c19a3d;color:var(--text-brand);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-brand);font-size:22px;margin:0}.catalog-count{background:#2a2622;background:var(--bg-empty);border-radius:9999px;border-radius:var(--radius-full);color:#8a8073;color:var(--text-muted);font-size:13px;font-weight:500;padding:4px 12px}.dash-hero{margin-bottom:16px;margin-bottom:var(--space-4)}.dash-greeting{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:32px;font-size:var(--text-2xl);font-variation-settings:"opsz" 96;font-weight:500;letter-spacing:-.02em;margin:0 0 2px}.dash-date{color:#8a8073;color:var(--text-muted);font-size:14px;font-size:var(--text-sm);margin:0}.dash-grid{grid-gap:12px;grid-gap:var(--space-3);display:grid;gap:12px;gap:var(--space-3);grid-template-columns:1fr 1fr;margin-bottom:16px;margin-bottom:var(--space-4)}.dash-card{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:14px;border-radius:var(--radius-lg);cursor:pointer;padding:16px;padding:var(--space-4);transition:border-color .2s cubic-bezier(.2,.8,.2,1),transform .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-normal) var(--ease),transform var(--duration-fast) var(--ease)}.dash-card:hover{border-color:#c19a3d;border-color:var(--saffron)}.dash-card:active{transform:scale(.98)}.dash-card-label{color:#8a8073;color:var(--text-muted);display:block;font-size:12px;font-size:var(--text-xs);font-weight:500;font-weight:var(--weight-medium);letter-spacing:.07em;margin-bottom:8px;margin-bottom:var(--space-2);text-transform:uppercase}.dash-card-value{color:#f3efe9;color:var(--text-primary);display:block;font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-variation-settings:"opsz" 48;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}.dash-card-empty{font-size:14px;font-size:var(--text-sm);font-style:italic;margin-bottom:4px}.dash-card-empty,.dash-card-hint{color:#8a8073;color:var(--text-muted);display:block}.dash-card-hint{font-size:12px;font-size:var(--text-xs)}.dash-card--macro{align-items:center;display:flex;flex-direction:column}.macro-ring-container{height:80px;margin:4px auto 0;margin:var(--space-1) auto 0;position:relative;width:80px}.macro-ring-svg{height:100%;width:100%}.macro-ring-label{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute}.macro-ring-value{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:16px;font-variation-settings:"opsz" 48;font-weight:600;line-height:1}.macro-ring-unit{color:#8a8073;color:var(--text-muted);font-size:9px;margin-top:2px}.dash-alert{align-items:center;background:#d4a04a1f;background:var(--warning-soft);border:1px solid #c19a3d33;border-radius:10px;border-radius:var(--radius-md);color:#d4a04a;color:var(--warning);cursor:pointer;display:flex;font-size:14px;font-size:var(--text-sm);font-weight:600;gap:8px;gap:var(--space-2);margin-bottom:16px;margin-bottom:var(--space-4);padding:12px 16px;padding:var(--space-3) var(--space-4);transition:border-color .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-normal) var(--ease)}.dash-alert:hover{border-color:#c19a3d;border-color:var(--saffron)}.dash-alert-arrow{margin-left:auto;opacity:.6}.dash-actions{grid-gap:8px;grid-gap:var(--space-2);display:grid;gap:8px;gap:var(--space-2);grid-template-columns:repeat(4,1fr);margin-bottom:24px;margin-bottom:var(--space-5)}.dash-action-btn{align-items:center;background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);color:#ada392;color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:11px;font-weight:600;gap:6px;padding:12px 8px;padding:var(--space-3) var(--space-2);transition:color .12s cubic-bezier(.2,.8,.2,1),border-color .12s cubic-bezier(.2,.8,.2,1);transition:color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.dash-action-btn:hover{border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.dash-section{margin-bottom:24px;margin-bottom:var(--space-5)}.dash-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px;margin-bottom:var(--space-3)}.dash-section-title{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-variation-settings:"opsz" 32;font-weight:600;letter-spacing:-.01em;margin:0}.dash-section-link{align-items:center;color:#c19a3d;color:var(--saffron);display:flex;font-size:12px;font-size:var(--text-xs);font-weight:600;gap:2px;text-decoration:none}.dash-community-list{display:flex;flex-direction:column;gap:8px;gap:var(--space-2)}.dash-community-card{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;padding:12px;padding:var(--space-3);transition:border-color .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-fast) var(--ease)}.dash-community-card:hover{border-color:#4a443c;border-color:var(--border-default)}.dash-community-img{border-radius:6px;border-radius:var(--radius-sm);height:120px;margin-bottom:8px;margin-bottom:var(--space-2);object-fit:cover;width:100%}.dash-community-meta{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.dash-community-user{color:#f3efe9;color:var(--text-primary);font-size:14px;font-size:var(--text-sm);font-weight:600}.dash-community-time{color:#8a8073;color:var(--text-muted);font-size:12px;font-size:var(--text-xs)}.dash-community-caption{color:#ada392;color:var(--text-secondary);font-size:14px;font-size:var(--text-sm);line-height:1.4;margin:0}.journal-card{margin-bottom:12px}.journal-card-header{align-items:flex-start;display:flex;justify-content:space-between}.journal-card-date{color:#8a8073;color:var(--text-muted);font-size:12px;font-size:var(--text-xs);font-weight:600}.journal-card-title{color:#f3efe9;color:var(--text-primary);font-size:17px;font-weight:600;font-weight:var(--weight-semibold);margin:4px 0 8px}.journal-card-body{color:#ada392;color:var(--text-secondary);font-size:14px;font-size:var(--text-sm);line-height:1.7;margin:0}.protocol-card-link{display:block;text-decoration:none}.protocol-card{cursor:pointer;margin-bottom:10px}.protocol-card-date{color:#8a8073;color:var(--text-muted);font-size:12px;font-size:var(--text-xs);font-weight:600}.protocol-card-title{color:#f3efe9;color:var(--text-primary);font-size:15px;font-weight:600;font-weight:var(--weight-semibold);margin:4px 0 6px}.protocol-card-tags{display:flex;flex-wrap:wrap;gap:5px}.protocol-card-tag{background:#1a1815;background:var(--surface-raised);border-radius:6px;border-radius:var(--radius-sm);color:#8a8073;color:var(--text-muted);font-size:11px;padding:2px 7px;text-transform:capitalize}.home-greeting{margin-bottom:8px;margin-bottom:var(--space-2)}.home-greeting-line{color:#ada392;color:var(--text-secondary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:24px;font-size:var(--text-xl);font-variation-settings:"opsz" 96;font-weight:500;letter-spacing:-.02em;margin:0}.time-label-accent{color:#c19a3d;color:var(--saffron);font-size:14px;font-weight:600;font-weight:var(--weight-semibold);min-width:100px;text-align:center}.tonight-progress{margin-top:16px;text-align:center}.tonight-progress-bar{background:#2a2622;background:var(--bg-surface-alt);height:4px;overflow:hidden;position:relative}.tonight-progress-bar,.tonight-progress-bar:after{border-radius:9999px;border-radius:var(--radius-full)}.tonight-progress-bar:after{animation:tonight-slide 1.8s ease-in-out infinite;background:#1a1815;background:var(--color-primary);content:"";inset:0;position:absolute}@keyframes tonight-slide{0%{transform:translateX(-100%);width:40%}50%{transform:translateX(60%);width:60%}to{transform:translateX(200%);width:40%}}.tonight-progress-label{color:#8a8073;color:var(--text-muted);font-size:13px;font-style:italic;margin-top:10px}.tonight-error{color:#c85544;color:var(--danger);font-size:14px;font-weight:600;margin-top:12px}.tonight-result{margin-top:20px}.tonight-recipe-name{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:22px;font-variation-settings:"opsz" 96;font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.tonight-recipe-description{color:#ada392;color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 14px}.tonight-ingredient-heading{color:#ada392;color:var(--text-secondary);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.07em;margin:0 0 6px;text-transform:uppercase}.tonight-ingredient-heading--have{color:#4a9d6e;color:var(--success)}.tonight-ingredient-heading--need{color:#c85544;color:var(--danger)}.tonight-step{color:#ada392;color:var(--text-secondary);display:flex;font-size:14px;gap:10px;line-height:1.6;margin-bottom:8px}.tonight-step-num{color:#c19a3d;color:var(--saffron);flex-shrink:0;font-weight:800;min-width:20px}.tonight-tip{background:#1a1815;background:var(--surface-raised);border-left:3px solid #c19a3d;border-left:3px solid var(--saffron);border-radius:10px;border-radius:var(--radius-md);color:#8a8073;color:var(--text-muted);font-size:13px;padding:10px 14px}.tonight-tip strong{color:#ada392;color:var(--text-secondary)}.settings-section{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-bottom:20px;padding:24px}.settings-section-title{color:#f3efe9;color:var(--text-primary);font-size:18px;font-weight:600;font-weight:var(--weight-semibold);margin:0 0 8px}.settings-description{color:#ada392;color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 16px}.settings-connected{align-items:center;background:#2e7d3214;border:1px solid #2e7d3233;border-radius:10px;border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:12px;padding:16px}.settings-connected-dot{background:#4a9d6e;background:var(--color-success);border-radius:50%;flex-shrink:0;height:8px;width:8px}.settings-connected-text{color:#f3efe9;color:var(--text-primary);font-size:14px;margin:0}.settings-steps{color:#ada392;color:var(--text-secondary);font-size:14px;line-height:2;padding-left:20px}.settings-steps li{margin-bottom:4px}.ai-recipe-result{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-top:24px;padding:24px}.ai-recipe-name{color:#c19a3d;color:var(--text-brand);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-brand);font-size:24px;margin:0 0 16px}.ai-recipe-section h3{color:#f3efe9;color:var(--text-primary);font-size:16px;font-size:13px;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.ai-recipe-section ul{list-style:none;margin:0 0 16px;padding:0}.ai-recipe-section ul li{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);color:#ada392;color:var(--text-secondary);font-size:15px;padding:6px 0}.ai-recipe-section ul li:last-child{border-bottom:none}.ai-recipe-step{color:#ada392;color:var(--text-secondary);font-size:15px;line-height:1.6;margin-bottom:10px}.ai-recipe-error{background:#dc354514;border:1px solid #dc354533;border-radius:10px;border-radius:var(--radius-md);color:#c85544;color:var(--color-danger);margin-top:24px;padding:16px;text-align:center}.loading-text{color:#8a8073;color:var(--text-muted);font-size:15px;padding:20px;text-align:center}.recipe-ingredients-list{list-style:none;margin:0 0 12px;padding:0}.recipe-ingredients-list li{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);color:#ada392;color:var(--text-secondary);font-size:14px;padding:6px 0}.recipe-ingredients-list li:last-child{border-bottom:none}.recipe-procedure-list{margin:0 0 12px;padding-left:20px}.recipe-procedure-list li{color:#ada392;color:var(--text-secondary);font-size:14px;line-height:1.6;padding:4px 0}.recipe-sub-title{color:#f3efe9;color:var(--text-primary);font-size:13px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;margin:12px 0 8px;text-transform:uppercase}@media (max-width:768px){.app-header{flex-direction:column;gap:12px;padding:12px 16px}.header-sync{flex-wrap:wrap;justify-content:center}.app-nav{padding:0 12px}.nav-list{gap:0}.nav-link{align-items:center;display:flex;font-size:13px;min-height:44px;padding:12px 10px}.btn-theme-toggle{font-size:12px;padding:6px 10px}.app-main{padding:16px 12px}.page-container{border-radius:10px;border-radius:var(--radius-md);padding:20px 16px}.page-title{font-size:26px}.form-row{flex-direction:column}.form-input-sm{width:100%}}@media (max-width:480px){.nav-list{-webkit-overflow-scrolling:touch;overflow-x:auto}.nav-link{font-size:12px;padding:12px 8px}.header-title{font-size:22px}}:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}:focus:not(:focus-visible){outline:none}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;gap:var(--space-2);margin-bottom:12px;margin-bottom:var(--space-3)}.tag{-webkit-tap-highlight-color:transparent;align-items:center;background:#1a1815;background:var(--surface-raised);border:1px solid #4a443c;border:1px solid var(--border-default);border-radius:9999px;border-radius:var(--radius-full);color:#ada392;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:12px;font-size:var(--text-xs);font-weight:500;font-weight:var(--weight-medium);gap:4px;gap:var(--space-1);height:32px;letter-spacing:.01em;padding:0 12px;padding:0 var(--space-3);transition:background .12s cubic-bezier(.2,.8,.2,1),border-color .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease);-webkit-user-select:none;user-select:none}@media (max-width:767px){.tag{height:44px;padding:0 16px;padding:0 var(--space-4)}}.tag:hover{background:#c19a3d1f;background:var(--saffron-soft);border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.tag.active{background:#1a1815;background:var(--ink);border-color:#1a1815;border-color:var(--ink)}.tag.active,.tag.active:hover{color:#faf8f5;color:var(--neutral-50)}.tag.active:hover{background:#2a2620;background:var(--ink-hover);border-color:#2a2620;border-color:var(--ink-hover)}.tag-pill{border-radius:9999px;border-radius:var(--radius-full);cursor:default;font-size:11px;height:24px;padding:0 8px;padding:0 var(--space-2)}.search-bar{margin-bottom:16px;position:relative}.search-bar .form-input{padding-left:36px}.search-icon{color:#8a8073;color:var(--text-muted);font-size:14px;left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.cost-badge{align-items:center;background:#2e7d321a;border-radius:9999px;border-radius:var(--radius-full);color:#4a9d6e;color:var(--color-success);display:inline-flex;font-size:13px;font-weight:600;gap:4px;padding:4px 10px}.scale-controls{align-items:center;display:flex;gap:8px;margin-bottom:8px;padding:8px 0}.scale-label{color:#ada392;color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.scale-btn{align-items:center;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:50%;color:#f3efe9;color:var(--text-primary);cursor:pointer;display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:16px;font-weight:600;font-weight:var(--weight-semibold);height:44px;justify-content:center;padding:0;transition:all .2s cubic-bezier(.2,.8,.2,1);transition:all var(--transition);width:44px}.scale-btn:hover{background:#c19a3d1f;background:var(--color-primary-light);border-color:#1a1815;border-color:var(--color-primary);color:#1a1815;color:var(--color-primary)}.scale-value{color:#f3efe9;color:var(--text-primary);font-size:15px;font-weight:600;font-weight:var(--weight-semibold);min-width:40px;text-align:center}.expiry-badge{border-radius:9999px;border-radius:var(--radius-full);font-size:11px;font-weight:600;margin-left:8px;padding:2px 8px}.expiry-ok{background:#4a9d6e1f;background:var(--success-soft);color:#4a9d6e;color:var(--success)}.expiry-soon{background:#d4a04a1f;background:var(--warning-soft);color:#d4a04a;color:var(--warning)}.expiry-expired{background:#c855441f;background:var(--danger-soft);color:#c85544;color:var(--danger)}.inventory-expiring-alert{background:#d4a04a1f!important;background:var(--warning-soft)!important;border-color:#d4a04a1f!important;border-color:var(--warning-soft)!important}.expiry-badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.expiry-use-label{color:#ada392;color:var(--text-secondary);font-size:13px;font-weight:600;margin:0 0 6px}.expiry-recipe-chips{display:flex;flex-wrap:wrap;gap:6px}.scan-status{color:#c19a3d;color:var(--saffron);font-size:13px;font-weight:600;margin-top:6px}.inv-suggestions{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;left:0;list-style:none;margin:4px 0 0;max-height:320px;overflow-y:auto;padding:4px 0;position:absolute;right:0;top:100%;z-index:50}.inv-suggestion-item{cursor:pointer;padding:8px 12px;transition:background .1s}.inv-suggestion-item.highlighted,.inv-suggestion-item:hover{background:#2a2622;background:var(--bg-surface-alt)}.inv-suggestion-item[aria-selected=true]{border-left:3px solid #1a1815;border-left:3px solid var(--color-primary);padding-left:9px}.inv-card{cursor:default;transition:opacity .15s,transform .15s,box-shadow .15s}.inv-card--dragging{opacity:.4;transform:scale(.98)}.inv-card--dragover{box-shadow:0 0 0 2px #1a1815;box-shadow:0 0 0 2px var(--color-primary)}.inv-drag-handle{align-items:center;color:#8a8073;color:var(--text-muted);cursor:grab;display:flex;flex-shrink:0;opacity:0;transition:opacity .15s}.inv-card:focus-within .inv-drag-handle,.inv-card:hover .inv-drag-handle{opacity:1}.inv-drag-handle:active{cursor:grabbing}.quickstart-panel{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:14px;border-radius:var(--radius-lg);margin-bottom:24px;padding:24px}.quickstart-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.quickstart-title{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:20px;font-weight:600;font-weight:var(--weight-semibold);margin:0 0 4px}.quickstart-subtitle{color:#ada392;color:var(--text-secondary);font-size:14px;margin:0}.quickstart-mode-tabs{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;gap:4px;margin-bottom:20px;padding-bottom:0}.quickstart-mode-tab{background:none;border:none;border-bottom:2px solid #0000;color:#ada392;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:600;font-weight:var(--weight-semibold);margin-bottom:-1px;padding:8px 16px;transition:color .15s,border-color .15s}.quickstart-mode-tab:hover{color:#f3efe9;color:var(--text-primary)}.quickstart-mode-tab.active{border-bottom-color:#1a1815;border-bottom-color:var(--color-primary);color:#1a1815;color:var(--color-primary)}.preset-list{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.preset-card-v2{border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s,box-shadow .15s}.preset-card-v2.expanded{border-color:#1a1815;border-color:var(--color-primary);box-shadow:0 0 0 1px #1a1815;box-shadow:0 0 0 1px var(--color-primary)}.preset-card-header{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border:none;cursor:pointer;display:flex;gap:12px;padding:14px 16px;text-align:left;transition:background .15s;width:100%}.preset-card-v2.expanded .preset-card-header{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color)}.preset-card-header:hover,.preset-card-v2.expanded .preset-card-header{background:#1a1815;background:var(--bg-surface)}.preset-card-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.preset-count-badge{background:#d4763b14;border-radius:9999px;border-radius:var(--radius-full);color:#1a1815;color:var(--color-primary);font-size:11px;font-weight:600;font-weight:var(--weight-semibold);padding:2px 8px;white-space:nowrap}.preset-chevron{color:#8a8073;color:var(--text-muted);flex-shrink:0;transition:transform .2s}.preset-chevron.rotated{transform:rotate(180deg)}.preset-card-body{background:#1a1815;background:var(--bg-surface);padding:16px}.preset-card-actions{align-items:center;border-top:1px solid #2a2622;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:12px}.preset-emoji{flex-shrink:0;font-size:22px;line-height:1}.preset-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600;font-weight:var(--weight-semibold)}.preset-desc{color:#8a8073;color:var(--text-muted);font-size:12px;line-height:1.3}.quickpick-tabs{display:flex;gap:6px;margin-bottom:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.quickpick-tabs::-webkit-scrollbar{display:none}.quickpick-tab{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:9999px;border-radius:var(--radius-full);color:#ada392;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:13px;font-weight:600;font-weight:var(--weight-semibold);padding:5px 14px;transition:all .15s}.quickpick-tab:hover{color:#1a1815;color:var(--color-primary)}.quickpick-tab.active,.quickpick-tab:hover{border-color:#1a1815;border-color:var(--color-primary)}.quickpick-tab.active{background:#1a1815;background:var(--color-primary);color:#fff}.quickpick-grid{display:flex;flex-wrap:wrap;gap:6px;max-height:280px;overflow-y:auto;padding:4px 0 12px}.quickpick-chip{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:9999px;border-radius:var(--radius-full);color:#ada392;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:4px;padding:5px 12px;transition:all .12s;white-space:nowrap}.quickpick-chip:hover:not(:disabled){border-color:#1a1815;border-color:var(--color-primary);color:#1a1815;color:var(--color-primary)}.quickpick-chip.selected{background:#1a1815;background:var(--color-primary);border-color:#1a1815;border-color:var(--color-primary);color:#fff;font-weight:600;font-weight:var(--weight-semibold)}.quickpick-chip.already{cursor:default;opacity:.45}.quickpick-chip-mark{font-size:11px;font-weight:600;font-weight:var(--weight-semibold)}.quickstart-cta{align-items:center;border-top:1px solid #2a2622;border-top:1px solid var(--border-color);display:flex;gap:8px;margin-top:16px;padding-top:16px}@media (max-width:480px){.preset-grid{grid-template-columns:1fr 1fr}.quickstart-panel{padding:16px}}.planner-week{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);margin-bottom:24px}.planner-day{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);min-height:120px;padding:12px 8px;transition:border-color .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--transition)}.planner-day:hover{border-color:#c19a3d;border-color:var(--saffron)}.planner-day-label{color:#8a8073;color:var(--text-muted);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;margin:0 0 4px;text-transform:uppercase}.planner-day-date{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:20px;font-variation-settings:"opsz" 96;font-weight:600;margin:0 0 8px}.planner-meal{background:#1a1815;background:var(--bg-surface);border-radius:6px;border-radius:var(--radius-sm);color:#ada392;color:var(--text-secondary);font-size:13px;justify-content:space-between;margin-bottom:4px}.planner-meal,.planner-meal-remove{align-items:center;display:flex;padding:4px 8px}.planner-meal-remove{background:none;border:none;color:#8a8073;color:var(--text-muted);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:14px;justify-content:center;line-height:1;min-height:44px;min-width:44px}.planner-meal-remove:hover{color:#c85544;color:var(--color-danger)}.planner-add-btn{background:#0000;border:1px dashed #2a2622;border:1px dashed var(--border-color);border-radius:6px;border-radius:var(--radius-sm);color:#8a8073;color:var(--text-muted);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:18px;min-height:44px;padding:10px 4px;transition:all .2s cubic-bezier(.2,.8,.2,1);transition:all var(--transition);width:100%}.planner-add-btn:hover{border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.planner-picker-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.planner-picker{background:#1a1815;background:var(--bg-surface);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-lg);max-height:70vh;max-width:400px;overflow-y:auto;padding:24px;width:90%}.planner-picker h3{color:#f3efe9;color:var(--text-primary);font-size:18px;font-weight:600;font-weight:var(--weight-semibold);margin:0 0 16px}.planner-picker-item{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);cursor:pointer;font-size:14px;margin-bottom:6px;padding:10px 14px;transition:all .2s cubic-bezier(.2,.8,.2,1);transition:all var(--transition)}.planner-picker-item:hover{background:#c19a3d1f;background:var(--saffron-soft);border-color:#c19a3d;border-color:var(--saffron)}.planner-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:20px}.planner-meta-count{color:#ada392;color:var(--text-secondary);font-size:14px;margin:0}.planner-picker-tags{color:#8a8073;color:var(--text-muted);font-size:11px;margin-left:8px}.report-status{font-size:13px;font-weight:600;margin-top:8px}.report-status--success{color:#4a9d6e;color:var(--success)}.report-status--error{color:#c85544;color:var(--danger)}.auth-status{color:#ada392;color:var(--text-secondary);font-size:14px;font-weight:600;margin-top:12px}.auth-sync-hint{color:#8a8073;color:var(--text-muted);font-size:13px;margin-bottom:12px}.budget-overview{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);padding:24px}.budget-overview-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.budget-overview-label{color:#8a8073;color:var(--text-muted);display:block;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.budget-overview-amount{color:#f3efe9;color:var(--text-primary);display:block;font-size:32px;font-weight:800;line-height:1.1}.budget-positive{color:#4a9d6e;color:var(--color-success)}.budget-negative{color:#c85544;color:var(--color-danger)}.budget-progress-track{background:#2a2622;background:var(--bg-empty);height:10px;margin-bottom:8px;overflow:hidden;width:100%}.budget-progress-fill,.budget-progress-track{border-radius:9999px;border-radius:var(--radius-full)}.budget-progress-fill{background:#1a1815;background:var(--color-primary);height:100%;transition:width .4s ease,background .3s ease}.budget-progress-warn{background:#c96830}.budget-progress-danger{background:#c85544;background:var(--color-danger)}.budget-progress-labels{color:#8a8073;color:var(--text-muted);display:flex;font-size:12px;font-weight:500;justify-content:space-between}.budget-shopping-estimate{border-top:1px solid #2a2622;border-top:1px solid var(--border-color);color:#ada392;color:var(--text-secondary);font-size:14px;margin-top:12px;padding-top:12px}.budget-templates-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.budget-template-card{background:#1a1815;background:var(--bg-surface);border:2px solid #2a2622;border:2px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);padding:16px;transition:border-color .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--transition),box-shadow var(--transition)}.budget-template-card:hover{box-shadow:0 1px 2px #0006,0 2px 4px #0003;box-shadow:var(--shadow-sm)}.budget-template-active,.budget-template-card:hover{border-color:#1a1815;border-color:var(--color-primary)}.budget-template-active{background:#c19a3d1f;background:var(--color-primary-light)}.budget-template-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.budget-template-name{color:#f3efe9;color:var(--text-primary);font-size:16px;margin:0}.budget-template-name,.budget-template-price{font-weight:600;font-weight:var(--weight-semibold)}.budget-template-price{background:#c19a3d1f;background:var(--bg-badge);border-radius:9999px;border-radius:var(--radius-full);color:#1a1815;color:var(--color-primary);font-size:14px;padding:2px 10px}.budget-template-desc{color:#ada392;color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0 0 12px}.budget-template-actions{display:flex;gap:8px}.budget-template-details{border-top:1px solid #2a2622;border-top:1px solid var(--border-color);margin-top:12px;padding-top:12px}.budget-category-row{margin-bottom:12px}.budget-category-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.budget-category-name{color:#f3efe9;color:var(--text-primary);font-size:13px;font-weight:600}.budget-category-percent{color:#8a8073;color:var(--text-muted);font-size:12px;font-weight:600}.budget-category-bar-track{background:#2a2622;background:var(--bg-empty);height:6px;margin-bottom:6px;overflow:hidden;width:100%}.budget-category-bar-fill,.budget-category-bar-track{border-radius:9999px;border-radius:var(--radius-full)}.budget-category-bar-fill{background:#1a1815;background:var(--color-primary);height:100%;transition:width .4s ease}.budget-bar-over{background:#c85544;background:var(--color-danger)}.budget-category-items{display:flex;flex-wrap:wrap;gap:4px}.budget-category-items .tag{cursor:default;font-size:11px;padding:2px 8px}.budget-breakdown-row{margin-bottom:14px}.budget-breakdown-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.budget-breakdown-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600}.budget-breakdown-alloc{color:#ada392;color:var(--text-secondary);font-size:13px;font-weight:500}.budget-expense-amount{color:#1a1815;color:var(--color-primary);font-size:15px;font-weight:600;font-weight:var(--weight-semibold);margin:0 12px;white-space:nowrap}.budget-tips-section{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-top:20px;padding:24px}.budget-tips-list{list-style:none;margin:0 0 20px;padding:0}.budget-tips-list li{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);color:#ada392;color:var(--text-secondary);font-size:14px;line-height:1.6;padding:10px 0}.budget-tips-list li:last-child{border-bottom:none}.budget-tips-list li strong{color:#f3efe9;color:var(--text-primary)}.budget-sample-menu{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);padding:16px}.budget-meal-plan{display:flex;flex-direction:column;gap:8px}.budget-meal{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border-radius:6px;border-radius:var(--radius-sm);display:flex;gap:12px;padding:8px 12px}.budget-meal-label{color:#1a1815;color:var(--color-primary);font-size:12px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;min-width:72px;text-transform:uppercase}.budget-meal-desc{color:#ada392;color:var(--text-secondary);flex:1 1;font-size:14px}.budget-meal-cost{color:#8a8073;color:var(--text-muted);font-size:13px;font-weight:600;white-space:nowrap}@media (max-width:768px){.budget-templates-grid{grid-template-columns:1fr}.budget-overview-amount{font-size:24px}.budget-meal{flex-wrap:wrap}.budget-meal-label{min-width:auto}.planner-week{gap:6px;grid-template-columns:1fr}.planner-day{align-items:center;display:flex;flex-wrap:wrap;gap:6px;min-height:auto}.planner-day-date,.planner-day-label{margin:0 8px 0 0}.planner-meal{margin-bottom:0}}.macro-slot{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);padding:8px 0}.macro-slot:last-child{border-bottom:none}.macro-slot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.macro-slot-label{color:#1a1815;color:var(--color-primary);font-size:13px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;text-transform:uppercase}.macro-slot-target{color:#8a8073;color:var(--text-muted);font-size:11px}.macro-slot-assigned{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border-radius:6px;border-radius:var(--radius-sm);display:flex;justify-content:space-between;margin:4px 0;padding:6px 10px}.fitness-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.fitness-stat-card{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);padding:16px;text-align:center}.fitness-stat-label{color:#8a8073;color:var(--text-muted);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.fitness-stat-value{color:#f3efe9;color:var(--text-primary);display:block;font-size:24px;font-weight:800;line-height:1.2}.fitness-stat-change{display:block;font-size:13px;font-weight:600;margin-top:4px}.fitness-stat-good{color:#4a9d6e;color:var(--color-success)}.fitness-stat-warn{color:#c96830}.fitness-stat-sub{color:#8a8073;color:var(--text-muted);display:block;font-size:11px;margin-top:2px}.fitness-chart{align-items:flex-end;display:flex;gap:4px;height:140px;padding:8px 0}.fitness-chart-col{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.fitness-chart-bar-container{align-items:flex-end;display:flex;flex:1 1;justify-content:center;width:100%}.fitness-chart-bar{border-radius:4px 4px 0 0;max-width:40px;min-height:2px;transition:height .4s ease;width:80%}.fitness-chart-label{color:#8a8073;color:var(--text-muted);font-size:10px;margin-top:4px;white-space:nowrap}@media (max-width:768px){.fitness-stats-grid{grid-template-columns:repeat(2,1fr)}.fitness-stat-value{font-size:20px}.macro-slot-header{align-items:flex-start;flex-direction:column;gap:2px}.list-item{gap:8px}.btn-group,.card-actions,.list-item{flex-wrap:wrap}}@media (max-width:480px){.fitness-stats-grid{grid-template-columns:1fr}.budget-overview-header{flex-direction:column;gap:8px}.budget-template-header{align-items:flex-start;flex-direction:column;gap:4px}.service-calendar-header{align-items:flex-start;flex-direction:column;gap:8px}.brigade-tally{flex-wrap:wrap;gap:16px;padding:14px 12px}.brigade-tally-num{font-size:24px}}.workout-th{border-bottom:2px solid #2a2622;border-bottom:2px solid var(--border-color);color:#8a8073;color:var(--text-muted);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;padding:8px 4px;text-align:left;text-transform:uppercase}.workout-tr{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);transition:background .2s cubic-bezier(.2,.8,.2,1);transition:background var(--transition)}.workout-tr:hover{background:#2a2622;background:var(--bg-surface-alt)}input[type=range]{-webkit-appearance:none;appearance:none;background:#ffffff1f;border-radius:9999px;border-radius:var(--radius-full);height:6px;outline:none}.light-mode input[type=range]{background:#0000001f}input[type=range]::-webkit-slider-runnable-track{border-radius:9999px;border-radius:var(--radius-full);height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#1a1815;background:var(--color-primary);border:2px solid #1a1815;border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 0 0 3px #d4763b33;cursor:pointer;height:24px;margin-top:-9px;width:24px}input[type=range]::-moz-range-track{background:#ffffff1f;border-radius:9999px;border-radius:var(--radius-full);height:6px}.light-mode input[type=range]::-moz-range-track{background:#0000001f}input[type=range]::-moz-range-progress{background:#1a1815;background:var(--color-primary);border-radius:9999px;border-radius:var(--radius-full);height:6px}input[type=range]::-moz-range-thumb{background:#1a1815;background:var(--color-primary);border:2px solid #1a1815;border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 0 0 3px #d4763b33;cursor:pointer;height:24px;width:24px}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #d4763b59}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #d4763b59}@media (max-width:768px){.workout-th{font-size:10px;padding:6px 2px}}.tutorial-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.tutorial-modal{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-lg);max-width:440px;padding:32px;width:90%}.tutorial-progress{display:flex;gap:6px;justify-content:center;margin-bottom:24px}.tutorial-dot{background:#2a2622;background:var(--bg-empty);border-radius:50%;height:8px;transition:all .2s cubic-bezier(.2,.8,.2,1);transition:all var(--transition);width:8px}.tutorial-dot.active{transform:scale(1.3)}.tutorial-dot.active,.tutorial-dot.done{background:#1a1815;background:var(--color-primary)}.tutorial-dot.done{opacity:.4}.tutorial-title{color:#f3efe9;color:var(--text-primary);font-size:20px;font-weight:600;font-weight:var(--weight-semibold);margin:0 0 8px;text-align:center}.tutorial-body{color:#ada392;color:var(--text-secondary);font-size:14px;line-height:1.7;margin:0 0 16px;text-align:center}.tutorial-features{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:20px}.tutorial-feature-tag{background:#c19a3d1f;background:var(--color-primary-light);border:1px solid #d4763b40;border-radius:9999px;border-radius:var(--radius-full);color:#1a1815;color:var(--color-primary);font-size:12px;font-weight:600;padding:4px 12px}.tutorial-actions{align-items:center;border-top:1px solid #2a2622;border-top:1px solid var(--border-color);display:flex;gap:8px;padding-top:16px}.schedule-grid{display:flex;flex-direction:column;gap:8px}.schedule-row{align-items:center;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);display:flex;gap:12px;padding:10px 14px}.schedule-day-name{font-size:14px;font-weight:600;min-width:140px}.schedule-day-name,.schedule-select{color:#f3efe9;color:var(--text-primary)}.schedule-select{background:#1a1815;background:var(--bg-input);border:1px solid #4a443c;border:1px solid var(--border-input);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:13px;padding:6px 10px}.schedule-select:focus{border-color:#c19a3d;border-color:var(--border-focus);outline:none}@media (max-width:768px){.schedule-row{flex-wrap:wrap}.schedule-day-name{min-width:100%}}.mark-toast{background:#1a1815;background:var(--surface-raised);border:1px solid #4a443c;border-left:3px solid #c19a3d;border:1px solid var(--border-default);border-left:3px solid var(--saffron);border-radius:14px;border-radius:var(--radius-lg);bottom:24px;bottom:var(--space-5);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-floating);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);max-width:380px;opacity:0;padding:16px 16px 16px 12px;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-3);position:fixed;right:24px;right:var(--space-5);transform:translateX(calc(100% + 24px));transform:translateX(calc(100% + var(--space-5)));transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .25s cubic-bezier(0,0,.2,1);transition:transform .4s var(--ease),opacity .25s var(--ease-out);z-index:200}.mark-toast-visible{opacity:1;transform:translateX(0)}.mark-toast-exiting{opacity:0;transform:translateX(calc(100% + 24px));transform:translateX(calc(100% + var(--space-5)))}.mark-toast-line{align-items:baseline;display:flex;gap:8px;gap:var(--space-2);margin-bottom:4px;margin-bottom:var(--space-1)}.mark-toast-prefix{color:#8a8073;color:var(--text-muted);font-size:12px;font-size:var(--text-xs);letter-spacing:.08em;letter-spacing:var(--tracking-caps);text-transform:uppercase}.mark-toast-name,.mark-toast-prefix{font-weight:600;font-weight:var(--weight-semibold)}.mark-toast-name{color:#c19a3d;color:var(--saffron);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-style:italic;font-variation-settings:"opsz" 32;letter-spacing:-.02em;letter-spacing:var(--tracking-tight)}.mark-toast-desc{color:#ada392;color:var(--text-secondary);font-size:14px;font-size:var(--text-sm);line-height:20px;line-height:var(--leading-sm)}.toast{background:#2a2622;background:var(--neutral-800);border-radius:14px;border-radius:var(--radius-lg);bottom:24px;bottom:var(--space-5);color:var(--neutral-100);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);left:50%;max-width:360px;opacity:0;position:fixed;transform:translateX(-50%) translateY(64px);transform:translateX(-50%) translateY(var(--space-8));transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s cubic-bezier(0,0,.2,1);transition:transform .35s var(--ease),opacity .25s var(--ease-out);width:calc(100vw - 64px);width:calc(100vw - var(--space-8));z-index:200}.light-mode .toast{background:#1a1815;background:var(--neutral-900);color:#faf8f5;color:var(--neutral-50)}.toast.toast-visible{opacity:1;transform:translateX(-50%) translateY(0)}.toast.toast-success{border-left:3px solid #4a9d6e;border-left:3px solid var(--success)}.toast.toast-error{border-left:3px solid #c85544;border-left:3px solid var(--danger)}.toast.toast-warning{border-left:3px solid #d4a04a;border-left:3px solid var(--warning)}.toast-action{margin-left:auto;padding:0;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}@media (max-width:768px){.mark-toast{left:12px;left:var(--space-3);max-width:none;right:12px;right:var(--space-3)}.mark-toast,.toast{bottom:calc(76px + env(safe-area-inset-bottom));bottom:calc(var(--mobile-nav-height) + var(--space-3) + env(safe-area-inset-bottom))}.toast{width:calc(100vw - 32px);width:calc(100vw - var(--space-6))}}.brigade-page .page-title{border-bottom:none;font-family:Georgia,"Source Serif Pro",Times New Roman,serif;font-size:28px;font-style:italic;font-weight:400;letter-spacing:-.5px;margin-bottom:6px;padding-bottom:4px}.brigade-page .page-subtitle{font-style:italic;margin-bottom:28px;margin-top:0}.brigade-tally{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);border-top:1px solid #2a2622;border-top:1px solid var(--border-color);display:flex;gap:32px;justify-content:center;margin-bottom:32px;padding:18px 24px}.brigade-tally>div{align-items:center;display:flex;flex-direction:column;gap:2px}.brigade-tally-num{font-feature-settings:"tnum";color:#f3efe9;color:var(--text-primary);font-family:JetBrains Mono,Courier New,monospace;font-size:32px;font-weight:600;line-height:1}.brigade-tally-label{color:#8a8073;color:var(--text-muted);font-size:10px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:1.5px;text-transform:uppercase}.brigade-tally-divider{background:#2a2622;background:var(--border-color);height:36px;width:1px}.brigade-domain{margin-bottom:36px}.brigade-domain-label{color:#8a8073;color:var(--text-muted);font-family:Georgia,"Source Serif Pro",Times New Roman,serif;font-size:13px;font-style:italic;font-weight:400;letter-spacing:2px;margin:0 0 16px;padding:0;text-align:center;text-transform:uppercase}.brigade-list{list-style:none;margin:0;padding:0}.brigade-mark{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-bottom:8px;padding:18px 20px;position:relative;transition:border-color .2s cubic-bezier(.2,.8,.2,1),background .2s cubic-bezier(.2,.8,.2,1);transition:border-color var(--transition),background var(--transition)}.brigade-mark.is-earned{border-color:#d4763b40}.brigade-mark.is-sealed{background:#0000;border-style:dashed;opacity:.55}.brigade-mark-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:6px}.brigade-mark-name{color:#f3efe9;color:var(--text-primary);font-family:Georgia,"Source Serif Pro",Times New Roman,serif;font-size:19px;font-style:italic;font-weight:600;letter-spacing:-.3px}.brigade-mark.is-earned .brigade-mark-name{color:#1a1815;color:var(--color-primary)}.brigade-mark-meta,.brigade-mark.is-sealed .brigade-mark-name{color:#8a8073;color:var(--text-muted)}.brigade-mark-meta{font-feature-settings:"tnum";font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap}.brigade-mark-desc{color:#ada392;color:var(--text-secondary);font-size:14px;font-style:italic;line-height:1.6;margin:0}.brigade-mark-rule{display:none}.brigade-domain-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:14px}.brigade-domain-count{font-feature-settings:"tnum";color:#8a8073;color:var(--text-muted);font-family:JetBrains Mono,Courier New,monospace;font-size:12px;letter-spacing:.5px}.brigade-footnote{border-top:1px solid #2a2622;border-top:1px solid var(--border-color);color:#8a8073;color:var(--text-muted);font-size:13px;font-style:italic;margin-top:24px;padding-top:16px;text-align:center}.nav-rank-badge{align-items:center;background:#c19a3d1f;background:var(--saffron-soft);border:1px solid #c19a3d1f;border:1px solid var(--saffron-soft);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--space-2);padding:8px 12px;padding:var(--space-2) var(--space-3);text-align:left;text-decoration:none;transition:border-color .12s cubic-bezier(.2,.8,.2,1),background .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.nav-rank-badge:hover{background:#c19a3d2e;border-color:#c19a3d;border-color:var(--saffron)}.nav-rank-name{color:#c19a3d;color:var(--saffron);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:14px;font-size:var(--text-sm);font-style:italic;font-variation-settings:"opsz" 16;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight)}.nav-rank-count{font-feature-settings:"tnum";color:#8a8073;color:var(--neutral-500);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.06em;text-transform:uppercase}.service-calendar{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-bottom:36px;padding:16px 18px}.service-calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.service-calendar-title{color:#f3efe9;color:var(--text-primary);font-family:Georgia,"Source Serif Pro",Times New Roman,serif;font-size:15px;font-style:italic;font-weight:400;margin:0}.service-calendar-legend{align-items:center;display:flex;gap:3px}.legend-label{color:#8a8073;color:var(--text-muted);font-size:10px;padding:0 4px}.legend-cell{border-radius:2px;height:10px;width:10px}.cal-month{align-items:flex-start;display:flex;gap:10px;margin-bottom:10px}.cal-month:last-child{margin-bottom:0}.cal-month-label{font-feature-settings:"tnum";color:#8a8073;color:var(--text-muted);font-family:JetBrains Mono,Courier New,monospace;font-size:10px;font-weight:600;letter-spacing:.5px;min-width:64px;padding-top:14px;text-transform:uppercase}.cal-grid{flex:1 1;min-width:0}.cal-weekday-row{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr);margin-bottom:2px}.cal-weekday{color:#8a8073;color:var(--text-muted);font-size:9px;font-weight:600;line-height:14px;text-align:center}.cal-cell-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.cal-cell{aspect-ratio:1;border-radius:2px;min-width:0;transition:background .2s cubic-bezier(.2,.8,.2,1);transition:background var(--transition)}.cal-empty{background:#0000}.cal-today{outline:1.5px solid #1a1815;outline:1.5px solid var(--color-primary);outline-offset:.5px}.heat-0{background:#2a2622;background:var(--bg-surface-alt)}.heat-1{background:#d4763b26}.heat-2{background:#d4763b59}.heat-3{background:#d4763b8c}.heat-4{background:#d4763bd9}.light-mode .heat-0{background:#2a2622;background:var(--bg-empty)}.light-mode .heat-1{background:#b85f281f}.light-mode .heat-2{background:#b85f2847}.light-mode .heat-3{background:#b85f287a}.light-mode .heat-4{background:#b85f28bf}.mark-progress{align-items:center;display:flex;gap:10px;margin-top:8px}.mark-progress-track{background:#2a2622;background:var(--bg-surface-alt);border-radius:2px;flex:1 1;height:4px;overflow:hidden}.mark-progress-fill{background:#1a1815;background:var(--color-primary);border-radius:2px;height:100%;transition:width .6s ease}.mark-progress-label{font-feature-settings:"tnum";color:#8a8073;color:var(--text-muted);font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-variant-numeric:tabular-nums;min-width:70px;text-align:right}.brigade-percentile-row{display:flex;gap:12px;margin-bottom:24px}.percentile-note{align-items:baseline;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);display:flex;flex:1 1;gap:8px;padding:12px 14px}.percentile-num{font-feature-settings:"tnum";color:#1a1815;color:var(--color-primary);font-family:JetBrains Mono,SF Mono,monospace;font-size:22px;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.percentile-suffix{color:#8a8073;color:var(--text-muted);font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;letter-spacing:.5px;text-transform:uppercase}.percentile-label{color:#ada392;color:var(--text-secondary);font-size:12px;line-height:1.3}.percentile-sample{color:#8a8073;color:var(--text-muted);font-size:11px}.price-totals{margin-bottom:20px;margin-top:16px}.price-breakdown-title,.price-totals-title{color:#ada392;color:var(--text-secondary);font-size:13px;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.price-total-row{align-items:center;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:6px;padding:10px 12px}.price-total-row.is-cheapest{background:#c19a3d1f;background:var(--color-primary-light);border-color:#1a1815;border-color:var(--color-primary)}.price-total-store{display:flex;flex-direction:column;gap:2px}.price-total-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600;font-weight:var(--weight-semibold)}.price-total-coverage{color:#8a8073;color:var(--text-muted);font-size:11px}.price-total-amount{font-feature-settings:"tnum";color:#1a1815;color:var(--color-primary);font-family:JetBrains Mono,SF Mono,monospace;font-size:18px;font-variant-numeric:tabular-nums;font-weight:800}.is-cheapest .price-total-amount{color:#4a9d6e;color:var(--color-success)}.price-breakdown{margin-top:16px}.price-item-group{margin-bottom:14px}.price-item-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600;font-weight:var(--weight-semibold);margin:0 0 6px;text-transform:capitalize}.price-item-row{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:6px 10px}.price-item-row:last-child{border-bottom:none}.price-item-store{color:#ada392;color:var(--text-secondary);font-size:13px}.price-item-right{align-items:center;display:flex;gap:10px}.price-item-amount{font-feature-settings:"tnum";color:#f3efe9;color:var(--text-primary);font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;font-variant-numeric:tabular-nums;font-weight:600;font-weight:var(--weight-semibold)}.price-item-reports{color:#8a8073;color:var(--text-muted);font-size:11px;min-width:55px;text-align:right}.price-report-toggle{align-items:center;cursor:pointer;display:flex;justify-content:space-between;-webkit-user-select:none;user-select:none}.price-report-arrow{color:#8a8073;color:var(--text-muted);font-size:12px}@media (max-width:480px){.brigade-percentile-row{flex-direction:column}}.catalog-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:16px}.catalog-card{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:14px;border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s}.catalog-card:hover{border-color:#1a1815;border-color:var(--color-primary)}.catalog-card-image{background:#2a2622;background:var(--bg-surface-alt);cursor:pointer;height:180px;overflow:hidden;width:100%}.catalog-card-image img{display:block;height:100%;object-fit:cover;width:100%}.catalog-card-content{padding:14px 16px}.catalog-card-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between}@media (max-width:480px){.catalog-grid{grid-template-columns:1fr}}.recipe-source-tabs{display:flex;gap:4px;margin-bottom:12px}.recipe-source-tab{align-items:center;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);color:#ada392;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;font-weight:600;min-height:44px;padding:6px 14px;transition:all .15s}.recipe-source-tab:hover{border-color:#ada392;border-color:var(--text-secondary);color:#f3efe9;color:var(--text-primary)}.recipe-source-tab.active{background:#c19a3d1f;background:var(--color-primary-light);border-color:#1a1815;border-color:var(--color-primary);color:#1a1815;color:var(--color-primary)}.recipe-source-badge{align-items:center;border-radius:6px;border-radius:var(--radius-sm);display:inline-flex;font-size:10px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.recipe-source-personal{background:#4db8701f;color:#4a9d6e;color:var(--color-success)}.recipe-source-catalog{background:#6b9df01f;color:#6b9df0}@media (max-width:480px){.recipe-source-tabs{flex-wrap:wrap}}.mobile-layout{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.mobile-header{align-items:center;background:#0e0c0a;background:var(--neutral-950);border-bottom:1px solid #2a2622;border-bottom:1px solid var(--neutral-800);display:flex;height:56px;height:var(--header-height);justify-content:space-between;left:0;padding:0 12px;padding:0 var(--space-3);padding-left:max(12px,env(safe-area-inset-left));padding-left:max(var(--space-3),env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-right:max(var(--space-3),env(safe-area-inset-right));position:fixed;right:0;top:0;transition:transform .32s cubic-bezier(.2,.8,.2,1);transition:transform var(--duration-slow) var(--ease);z-index:1000}.mobile-header.header-hidden{transform:translateY(-100%)}.mobile-header-back,.mobile-header-menu{align-items:center;background:none;border:none;border-radius:10px;border-radius:var(--radius-md);color:#ada392;color:var(--neutral-400);cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:background .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease);width:40px}.mobile-header-back:hover,.mobile-header-menu:hover{background:#ffffff0f;color:#f3efe9;color:var(--neutral-100)}.mobile-header-center{align-items:center;display:flex;flex:1 1;gap:8px;gap:var(--space-2);justify-content:center}.mobile-header-title{color:#f3efe9;color:var(--neutral-100);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:15px;font-size:var(--text-base);font-variation-settings:"opsz" 24;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight)}.mobile-header-right{align-items:center;display:flex;justify-content:flex-end;width:40px}.mobile-sync-dot{border-radius:50%;display:block;height:8px;transition:background .2s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-normal) var(--ease);width:8px}.mobile-main{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:56px 0 64px;padding:var(--header-height) 0 var(--mobile-nav-height)}.mobile-main .page-container{max-width:100%;padding:16px 12px;padding:var(--space-4) var(--space-3)}.mobile-nav{align-items:center;background:#0e0c0a;background:var(--neutral-950);border-top:1px solid #2a2622;border-top:1px solid var(--neutral-800);bottom:0;display:flex;height:64px;height:var(--mobile-nav-height);justify-content:space-around;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;transition:transform .32s cubic-bezier(.2,.8,.2,1);transition:transform var(--duration-slow) var(--ease);z-index:1000}.mobile-nav.nav-hidden{transform:translateY(100%)}.mobile-nav-tab{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;color:#8a8073;color:var(--neutral-500);cursor:pointer;display:flex;flex-direction:column;gap:3px;min-width:56px;padding:8px 12px;padding:var(--space-2) var(--space-3);position:relative;text-decoration:none;transition:color .12s cubic-bezier(.2,.8,.2,1);transition:color var(--duration-fast) var(--ease)}.mobile-nav-tab.active{color:#c19a3d;color:var(--saffron)}.mobile-nav-tab.active:before{background:#c19a3d;background:var(--saffron);border-radius:0 0 6px 6px;border-radius:0 0 var(--radius-sm) var(--radius-sm);content:"";height:2px;left:50%;position:absolute;top:0;transform:translateX(-50%);width:24px}.mobile-nav-icon{align-items:center;display:flex;justify-content:center;line-height:1}.mobile-nav-label{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:10px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.02em;text-transform:uppercase}.mobile-nav-swipe-hint{align-items:center;color:#635a4f;color:var(--neutral-600);display:flex;position:absolute;right:10px;top:2px}.mobile-nav-create .mobile-nav-icon{align-items:center;background:#1a1815;background:var(--ink);border:1px solid #4a443c;border:1px solid var(--neutral-700);border-radius:50%;box-shadow:0 1px 2px #0006,0 2px 4px #0003;box-shadow:var(--shadow-raised);color:#faf8f5;color:var(--neutral-50);display:flex;height:40px;justify-content:center;margin-top:-10px;transition:background .12s cubic-bezier(.2,.8,.2,1),box-shadow .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);width:40px}.mobile-nav-create.active .mobile-nav-icon,.mobile-nav-create:hover .mobile-nav-icon{background:#c19a3d;background:var(--saffron);border-color:#ad8633;border-color:var(--saffron-hover);color:#0e0c0a;color:var(--neutral-950)}.mobile-drawer-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;inset:0;position:fixed;z-index:2000}.mobile-drawer{animation:slideDrawer .2s cubic-bezier(0,0,.2,1);animation:slideDrawer var(--duration-normal) var(--ease-out);background:#0e0c0a;background:var(--neutral-950);border-right:1px solid #2a2622;border-right:1px solid var(--neutral-800);bottom:0;display:flex;flex-direction:column;left:0;max-width:82vw;overflow-y:auto;position:fixed;top:0;width:300px;z-index:2001}@keyframes slideDrawer{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.mobile-drawer-header{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--neutral-800);display:flex;gap:12px;gap:var(--space-3);padding:16px;padding:var(--space-4) var(--space-4);padding-top:calc(16px + env(safe-area-inset-top));padding-top:calc(var(--space-4) + env(safe-area-inset-top))}.mobile-drawer-brand{color:#f3efe9;color:var(--neutral-100);flex:1 1;font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:18px;font-size:var(--text-lg);font-variation-settings:"opsz" 32;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:-.02em;letter-spacing:var(--tracking-tight)}.mobile-drawer-close{align-items:center;background:none;border:none;border-radius:10px;border-radius:var(--radius-md);color:#8a8073;color:var(--neutral-500);cursor:pointer;display:flex;height:36px;justify-content:center;transition:background .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease);width:36px}.mobile-drawer-close:hover{background:#ffffff0f;color:#f3efe9;color:var(--neutral-100)}.mobile-drawer-body{flex:1 1;overflow-y:auto;padding:8px 0;padding:var(--space-2) 0}.mobile-drawer-section{padding:4px 0;padding:var(--space-1) 0}.mobile-drawer-section+.mobile-drawer-section{border-top:1px solid #2a2622;border-top:1px solid var(--neutral-800);margin-top:4px;margin-top:var(--space-1);padding-top:4px;padding-top:var(--space-1)}.mobile-drawer-section-label{color:#635a4f;color:var(--neutral-600);font-size:10px;letter-spacing:.08em;letter-spacing:var(--tracking-caps);padding:12px 16px 8px;padding:var(--space-3) var(--space-4) var(--space-2);text-transform:uppercase}.mobile-drawer-link,.mobile-drawer-section-label{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-weight:500;font-weight:var(--weight-medium)}.mobile-drawer-link{align-items:center;color:#ada392;color:var(--neutral-400);display:flex;font-size:14px;font-size:var(--text-sm);justify-content:space-between;padding:12px 16px;padding:var(--space-3) var(--space-4);text-decoration:none;transition:background .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.mobile-drawer-link:active,.mobile-drawer-link:hover{background:#ffffff0a;color:#f3efe9;color:var(--neutral-100)}.mobile-drawer-link.active{background:#c19a3d1f;background:var(--saffron-soft);color:#c19a3d;color:var(--saffron)}.mobile-drawer-link.locked{color:#635a4f;color:var(--neutral-600)}.mobile-drawer-footer{border-top:1px solid #2a2622;border-top:1px solid var(--neutral-800);display:flex;flex-direction:column;gap:8px;gap:var(--space-2);padding:16px;padding:var(--space-4);padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.community-feed{margin:0 auto;max-width:600px;padding:0 0 20px}.community-auth-prompt{padding:60px 20px;text-align:center}.community-auth-prompt h2{color:#f3efe9;color:var(--text-primary);font-size:24px;margin-bottom:12px}.community-auth-prompt p{color:#ada392;color:var(--text-secondary);margin-bottom:20px;margin-left:auto;margin-right:auto;max-width:360px}.feed-tabs{background:#0e0c0a;background:var(--bg-body);border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;padding:0 16px;position:-webkit-sticky;position:sticky;top:52px;z-index:10}.feed-tab{background:none;border:none;border-bottom:2px solid #0000;color:#ada392;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:14px 0;transition:all .15s}.feed-tab.active{border-bottom-color:#c19a3d;border-bottom-color:var(--saffron);color:#f3efe9;color:var(--text-primary)}.feed-posts{display:flex;flex-direction:column}.feed-card{background:#1a1815;background:var(--bg-surface);border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color)}.feed-card-header{cursor:pointer;gap:10px;padding:12px 16px}.feed-avatar,.feed-card-header{align-items:center;display:flex}.feed-avatar{background:#2a2622;background:var(--bg-surface-alt);border-radius:50%;flex-shrink:0;height:36px;justify-content:center;overflow:hidden;width:36px}.feed-avatar img{height:100%;object-fit:cover;width:100%}.feed-avatar span{color:#c19a3d;color:var(--saffron);font-size:14px;font-weight:600;font-weight:var(--weight-semibold)}.feed-card-meta{display:flex;flex:1 1;flex-direction:column}.feed-username{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600}.feed-time{color:#8a8073;color:var(--text-muted);font-size:11px}.feed-chef-badge{background:#c19a3d1f;background:var(--saffron-soft);border-radius:9999px;border-radius:var(--radius-full);color:#c19a3d;color:var(--saffron);font-size:10px;font-weight:600;padding:2px 8px;text-transform:capitalize}.feed-card-image{aspect-ratio:4/5;background:#2a2622;background:var(--bg-empty);cursor:pointer;overflow:hidden;width:100%}.feed-card-image img{height:100%;object-fit:cover;width:100%}.feed-card-actions{display:flex;gap:16px;padding:12px 16px}.feed-action-btn{align-items:center;background:none;border:none;color:#ada392;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:4px;padding:0;transition:color .15s}.feed-action-btn.liked{color:#e05555}.feed-card-caption{color:#f3efe9;color:var(--text-primary);cursor:pointer;font-size:14px;line-height:1.4;padding:0 16px 8px}.feed-caption-user{font-weight:600}.feed-card-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px}.feed-tag{color:#c19a3d;color:var(--saffron);cursor:pointer;font-size:13px;font-weight:500}.feed-loading{display:flex;flex-direction:column;gap:0}.feed-skeleton-card{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-subtle);padding-bottom:16px}.feed-skeleton-header{align-items:center;display:flex;gap:10px;padding:12px 16px}.feed-empty{color:#ada392;color:var(--text-secondary);padding:60px 20px;text-align:center}.feed-sentinel{padding:20px;text-align:center}.feed-loading-more{color:#8a8073;color:var(--text-muted);font-size:13px}.post-create{margin:0 auto;max-width:600px;padding:16px}.post-create-header{align-items:center;display:flex;gap:12px;margin-bottom:20px}.post-create-header h2{color:#f3efe9;color:var(--text-primary);font-size:20px;margin:0}.btn-back{background:none;border:none;color:#ada392;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:4px}.post-create-form{display:flex;flex-direction:column;gap:12px}.post-create-image-area{align-items:center;aspect-ratio:1;background:#1a1815;background:var(--bg-surface);border:2px dashed #2a2622;border:2px dashed var(--border-color);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:center;overflow:hidden;transition:border-color .15s;width:100%}.post-create-image-area:active{border-color:#1a1815;border-color:var(--color-primary)}.post-create-preview{height:100%;object-fit:cover;width:100%}.post-create-image-placeholder{align-items:center;color:#8a8073;color:var(--text-muted);display:flex;flex-direction:column;gap:8px}.post-create-camera{font-size:48px}.post-create-caption{padding:12px;resize:vertical}.post-create-caption,.post-create-recipe-link,.post-create-tags{background:#1a1815;background:var(--bg-input);border:1px solid #4a443c;border:1px solid var(--border-input);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:14px}.post-create-recipe-link,.post-create-tags{padding:10px 12px}.post-create-error{color:#c85544;color:var(--color-danger);font-size:13px}.post-create-submit{margin-top:8px}.post-detail{margin:0 auto;max-width:600px;padding:16px}.post-detail-author{align-items:center;cursor:pointer;display:flex;gap:10px;padding:12px 0}.post-detail-image{border-radius:10px;border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden;width:100%}.post-detail-image img{display:block;width:100%}.post-detail-caption{color:#f3efe9;color:var(--text-primary);font-size:15px;line-height:1.5;padding:8px 0}.post-detail-comments{border-top:1px solid #2a2622;border-top:1px solid var(--border-color);margin-top:16px;padding-top:16px}.post-detail-comments h3{color:#f3efe9;color:var(--text-primary);font-size:16px;margin-bottom:12px}.post-detail-no-comments{color:#8a8073;color:var(--text-muted);font-size:13px;padding:20px 0;text-align:center}.comment-item{align-items:flex-start;display:flex;gap:10px;padding:8px 0}.comment-avatar{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border-radius:50%;display:flex;flex-shrink:0;height:28px;justify-content:center;overflow:hidden;width:28px}.comment-avatar img{height:100%;object-fit:cover;width:100%}.comment-avatar span{color:#1a1815;color:var(--color-primary);font-size:11px;font-weight:600;font-weight:var(--weight-semibold)}.comment-body{flex:1 1}.comment-author{cursor:pointer;font-weight:600;margin-right:6px}.comment-author,.comment-text{color:#f3efe9;color:var(--text-primary);font-size:13px}.comment-text{line-height:1.4}.comment-time{display:block;font-size:11px;margin-top:2px}.comment-delete,.comment-time{color:#8a8073;color:var(--text-muted)}.comment-delete{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:4px}.comment-form{border-top:1px solid #2a2622;border-top:1px solid var(--border-color);display:flex;gap:8px;margin-top:12px;padding-top:12px}.comment-form input{background:#1a1815;background:var(--bg-input);border:1px solid #4a443c;border:1px solid var(--border-input);border-radius:9999px;border-radius:var(--radius-full);color:#f3efe9;color:var(--text-primary);flex:1 1;font-size:13px;padding:8px 14px}.comment-form button{background:none;border:none;color:#1a1815;color:var(--color-primary);cursor:pointer;font-size:13px;font-weight:600;font-weight:var(--weight-semibold);white-space:nowrap}.comment-form button:disabled,.comment-signin{color:#8a8073;color:var(--text-muted)}.comment-signin{font-size:13px;padding:16px 0;text-align:center}.btn-link{background:none;border:none;color:#1a1815;color:var(--color-primary);cursor:pointer;font-size:inherit;font-weight:600;padding:0}.user-profile{margin:0 auto;max-width:600px;padding:16px}.profile-header{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;margin-bottom:16px;padding-bottom:20px;text-align:center}.profile-avatar-large{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border-radius:50%;display:flex;height:80px;justify-content:center;margin-bottom:12px;overflow:hidden;width:80px}.profile-avatar-large img{height:100%;object-fit:cover;width:100%}.profile-avatar-placeholder{color:#1a1815;color:var(--color-primary);font-size:28px;font-weight:600;font-weight:var(--weight-semibold)}.profile-name{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:24px;font-variation-settings:"opsz" 96;font-weight:600;margin:0 0 6px}.profile-level{background:#c19a3d1f;background:var(--saffron-soft);border-radius:9999px;border-radius:var(--radius-full);color:#c19a3d;color:var(--saffron);font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 10px;text-transform:capitalize}.profile-bio{color:#ada392;color:var(--text-secondary);font-size:14px;margin:10px 0 4px;max-width:400px}.profile-location{color:#8a8073;color:var(--text-muted);font-size:13px;margin:4px 0 0}.profile-stats-row{display:flex;gap:32px;margin:16px 0}.profile-stat{align-items:center;display:flex;flex-direction:column}.profile-stat-val{color:#f3efe9;color:var(--text-primary);font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:22px;font-variation-settings:"opsz" 96;font-weight:600}.profile-stat-label{color:#8a8073;color:var(--text-muted);font-size:12px}.profile-actions{margin-top:4px}.profile-edit-form{background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding:16px}.profile-edit-form input,.profile-edit-form select,.profile-edit-form textarea{background:#1a1815;background:var(--bg-input);border:1px solid #4a443c;border:1px solid var(--border-input);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:14px;padding:10px 12px}.profile-edit-avatar-row{align-items:center;display:flex;gap:12px}.profile-edit-avatar-hint{color:#8a8073;color:var(--text-muted);font-size:12px}.profile-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr)}.profile-grid-item{aspect-ratio:1;background:#2a2622;background:var(--bg-surface-alt);cursor:pointer;overflow:hidden}.profile-grid-item img{height:100%;object-fit:cover;width:100%}.profile-grid-text{align-items:center;color:#ada392;color:var(--text-secondary);display:flex;font-size:12px;height:100%;justify-content:center;padding:12px;text-align:center}.profile-tabs{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;margin-bottom:8px}.discover-page{margin:0 auto;max-width:600px;padding:16px}.discover-header{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.discover-header h2{font-size:22px;margin:0}.discover-header h2,.discover-search{color:#f3efe9;color:var(--text-primary)}.discover-search{background:#1a1815;background:var(--bg-input);border:1px solid #4a443c;border:1px solid var(--border-input);border-radius:9999px;border-radius:var(--radius-full);font-size:14px;padding:10px 16px}.discover-tabs{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;gap:0;margin-bottom:16px}.discover-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr)}.discover-grid-item{aspect-ratio:1;background:#2a2622;background:var(--bg-surface-alt);cursor:pointer;overflow:hidden;position:relative}.discover-grid-item img{height:100%;object-fit:cover;width:100%}.discover-grid-text{align-items:center;background:#1a1815;background:var(--bg-surface);color:#ada392;color:var(--text-secondary);display:flex;font-size:12px;height:100%;justify-content:center;padding:12px;text-align:center}.discover-grid-overlay{background:linear-gradient(#0000,#000000b3);bottom:0;color:#fff;display:flex;font-size:11px;gap:10px;left:0;opacity:0;padding:8px;position:absolute;right:0;transition:opacity .15s}.discover-grid-item:active .discover-grid-overlay,.discover-grid-item:hover .discover-grid-overlay{opacity:1}.discover-chefs{display:flex;flex-direction:column}.discover-chef-card{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;gap:12px;padding:12px 0}.discover-chef-avatar{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;overflow:hidden;width:48px}.discover-chef-avatar img{height:100%;object-fit:cover;width:100%}.discover-chef-avatar span{color:#1a1815;color:var(--color-primary);font-size:18px;font-weight:600;font-weight:var(--weight-semibold)}.discover-chef-info{cursor:pointer;display:flex;flex:1 1;flex-direction:column}.discover-chef-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600}.discover-chef-level{color:#8a8073;color:var(--text-muted);font-size:12px;text-transform:capitalize}.discover-tags{display:flex;flex-wrap:wrap;gap:8px}.discover-tag-pill{align-items:center;background:#1a1815;background:var(--bg-surface);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:9999px;border-radius:var(--radius-full);color:#1a1815;color:var(--color-primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:background .15s}.discover-tag-pill:hover{background:#c19a3d1f;background:var(--color-primary-light)}.discover-tag-count{color:#8a8073;color:var(--text-muted);font-size:12px;font-weight:400}.feed-recipe-card{margin:0 16px 12px;padding:12px}.feed-recipe-info{flex:1 1}.post-recipe-header{align-items:center}.post-recipe-macros{background:#1a1815;background:var(--bg-surface);border-radius:6px;border-radius:var(--radius-sm);padding:10px}.post-recipe-section h4{color:#f3efe9;color:var(--text-primary);font-size:14px}.post-recipe-section li{color:#ada392;color:var(--text-secondary);font-size:13px}.btn-outline{background:#0000;border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .15s}.btn-outline:hover{border-color:#ada392;border-color:var(--text-secondary)}.btn-sm{font-size:12px;padding:6px 12px}.feed-recipe-card{align-items:center;background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;justify-content:space-between;margin:0 16px 8px;padding:10px 14px}.feed-recipe-info{display:flex;flex-direction:column;gap:2px;min-width:0}.feed-recipe-label{color:#1a1815;color:var(--color-primary);font-size:10px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;text-transform:uppercase}.feed-recipe-name{color:#f3efe9;color:var(--text-primary);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-recipe-macros{color:#8a8073;color:var(--text-muted);font-size:12px}.post-recipe-detail{background:#2a2622;background:var(--bg-surface-alt);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);margin-top:16px;padding:16px}.post-recipe-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.post-recipe-header h3{color:#f3efe9;color:var(--text-primary);font-size:18px;margin:0}.post-recipe-macros{border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:12px}.post-recipe-macros span{color:#ada392;color:var(--text-secondary);font-size:13px;font-weight:500}.post-recipe-section{margin-bottom:12px}.post-recipe-section h4{color:#8a8073;color:var(--text-muted);font-size:13px;font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.post-recipe-section ol,.post-recipe-section ul{margin:0;padding-left:20px}.post-recipe-section li{color:#f3efe9;color:var(--text-primary);font-size:14px;line-height:1.6;padding:2px 0}.mobile-nav-more{background:none;border:none;color:#ada392;color:var(--text-secondary);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);transition:color .15s}.mobile-nav-more:active{color:#1a1815;color:var(--color-primary)}.mobile-header-back{align-items:center;background:none;border:none;color:#f3efe9;color:var(--text-on-dark);cursor:pointer;display:flex;font-size:28px;line-height:1;padding:4px 8px}.longpress-backdrop{animation:fadeIn .15s ease;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);background:#0000004d;inset:0;position:fixed;z-index:3000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.longpress-menu{animation:meltUp .25s cubic-bezier(.34,1.56,.64,1);bottom:72px;left:8px;max-height:calc(100dvh - 140px);position:fixed;right:8px;transform-origin:bottom left;z-index:3001}@keyframes meltUp{0%{border-radius:24px;opacity:0;transform:scale(.85) translateY(20px)}60%{opacity:1;transform:scale(1.02) translateY(-2px)}to{border-radius:14px;border-radius:var(--radius-lg);opacity:1;transform:scale(1) translateY(0)}}.longpress-menu-inner{backdrop-filter:blur(40px) saturate(220%) brightness(1.1);-webkit-backdrop-filter:blur(40px) saturate(220%) brightness(1.1);background:#0c0c0c2e;border:1px solid #ffffff1f;border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 -4px 32px #00000040,inset 0 1px 0 #ffffff1a;max-height:calc(100dvh - 140px);overflow-y:auto;padding:8px 0}.light-mode .longpress-menu-inner{background:#ffffff2e;border:1px solid #00000014;box-shadow:0 -4px 32px #0000001a,inset 0 1px 0 #ffffffb3}.longpress-section{padding:4px 0}.longpress-section-label{color:#ffffff59;font-size:10px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:1px;padding:8px 16px 4px;text-transform:uppercase}.light-mode .longpress-section-label{color:#0006}.longpress-section-links{display:flex;flex-wrap:wrap;gap:4px;padding:4px 12px}.longpress-link{align-items:center;background:#ffffff14;border:1px solid #ffffff1f;border-radius:9999px;border-radius:var(--radius-full);color:#f3efe9;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:13px;font-weight:500;gap:4px;padding:8px 14px;transition:all .12s;white-space:nowrap}.light-mode .longpress-link{background:#0000000d;border-color:#0000001a}.longpress-link:active{background:#1a1815;background:var(--color-primary);border-color:#1a1815;border-color:var(--color-primary);color:#faf8f5;color:var(--text-on-primary);transform:scale(.95)}.longpress-link.locked{border-style:dashed;color:#8a8073;color:var(--text-muted)}.longpress-lock{background:#c19a3d1f;background:var(--color-primary-light);border-radius:6px;border-radius:var(--radius-sm);color:#1a1815;color:var(--color-primary);font-size:9px;font-weight:500;font-weight:var(--weight-medium);padding:1px 5px}.longpress-hint{animation:hintPulse 2s ease infinite,hintSlideUp .3s ease;bottom:72px;cursor:pointer;left:8px;position:fixed;z-index:2500}@keyframes hintSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hintPulse{0%,to{opacity:1}50%{opacity:.7}}.longpress-hint-text{background:#1a1815;background:var(--color-primary);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-lg);color:#fff;font-size:13px;font-weight:500;line-height:1.4;max-width:200px;padding:10px 14px;white-space:normal}.longpress-hint-arrow{border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid #1a1815;border-top:8px solid var(--color-primary);height:0;margin-left:20px;margin-top:0;width:0}@media (min-width:768px){.longpress-backdrop,.longpress-hint,.longpress-menu,.mobile-drawer,.mobile-drawer-backdrop,.mobile-header,.mobile-nav{display:none}.discover-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:767px){.feed-tabs{top:52px}.feed-card-image{border-radius:0}.community-feed,.discover-page,.post-create,.post-detail,.user-profile{padding-left:0;padding-right:0}.discover-chefs,.discover-header,.discover-tabs,.discover-tags,.feed-card-actions,.feed-card-caption,.feed-card-header,.feed-card-tags,.post-create-form,.post-create-header,.post-detail>:not(.post-detail-image),.user-profile>*{padding-left:16px;padding-right:16px}.discover-grid{gap:1px;grid-template-columns:repeat(3,1fr)}.profile-grid{gap:1px}.post-create-image-area{border-left:none;border-radius:0;border-right:none}.mobile-main *{max-width:100%}.mobile-main table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.mobile-main .page-container{max-width:100%;padding:16px 12px}.mobile-main .page-title{font-size:22px;margin-bottom:16px}.mobile-main .form-row,.mobile-main .input-row{flex-direction:column}.mobile-main .card-grid{gap:12px;grid-template-columns:1fr}.mobile-main .stats-grid{grid-template-columns:repeat(2,1fr)}.mobile-main .action-row,.mobile-main .btn-row{flex-wrap:wrap;gap:8px}.mobile-main input[type=email],.mobile-main input[type=number],.mobile-main input[type=password],.mobile-main input[type=search],.mobile-main input[type=text],.mobile-main select,.mobile-main textarea{box-sizing:border-box;font-size:16px;min-height:44px;width:100%}.mobile-main .btn,.mobile-main button{min-height:44px;min-width:44px}.mobile-main .admin-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.mobile-main .inventory-grid,.mobile-main .recipe-grid{grid-template-columns:1fr}.mobile-main .catalog-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.mobile-main .modal,.mobile-main .modal-content{border-radius:14px 14px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;bottom:0;left:0;margin:0;max-height:90dvh;max-width:100%;overflow-y:auto;position:fixed;right:0;width:100%}.mobile-main .section-header{flex-wrap:wrap;gap:8px}.mobile-main .filter-tabs,.mobile-main .tab-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.mobile-main .admin-stats-grid{grid-template-columns:repeat(2,1fr)}.mobile-main .admin-bar-chart{overflow-x:auto}}.toast-region{bottom:16px;bottom:var(--space-4);display:flex;flex-direction:column;gap:8px;gap:var(--space-2);left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);width:min(420px,calc(100% - 32px));z-index:10000}@media (min-width:768px){.toast-region{bottom:auto;left:auto;right:24px;right:var(--space-5);top:24px;top:var(--space-5);transform:none}}.toast{align-items:center;animation:toastIn .2s cubic-bezier(.2,.8,.2,1);animation:toastIn var(--duration-normal) var(--ease);background:#1a1815d9;background:var(--surface-overlay,var(--surface-raised));border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-floating);color:#f3efe9;color:var(--text-primary);display:flex;font-size:14px;font-size:var(--text-sm);font-weight:500;font-weight:var(--weight-medium);gap:12px;gap:var(--space-3);padding:12px 16px;padding:var(--space-3) var(--space-4);pointer-events:auto}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast--success .toast-icon{color:#4a9d6e;color:var(--success)}.toast--error{border-color:#c85544;border-color:var(--danger)}.toast--error .toast-icon{color:#c85544;color:var(--danger)}.toast--info .toast-icon{color:#c19a3d;color:var(--saffron)}.toast-message{flex:1 1;min-width:0}.toast-action{background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#c19a3d;color:var(--saffron);cursor:pointer;font-family:inherit;font-size:14px;font-size:var(--text-sm);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.04em;padding:4px 8px;text-transform:uppercase;transition:background .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease)}.toast-action:hover{background:#c19a3d1f;background:var(--saffron-soft,#c19a3d1f)}.toast-action:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}.toast-close{background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#8a8073;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:4px}.toast-close:hover{color:#f3efe9;color:var(--text-primary)}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.recent-chips{align-items:center;display:flex;flex-wrap:wrap;gap:8px;gap:var(--space-2);margin-bottom:12px;margin-bottom:var(--space-3)}.recent-chips-label{color:#8a8073;color:var(--text-muted);font-size:11px;letter-spacing:.5px;margin-right:4px;margin-right:var(--space-1);text-transform:uppercase}.recent-chip,.recent-chips-label{font-weight:500;font-weight:var(--weight-medium)}.recent-chip{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:9999px;border-radius:var(--radius-full);color:#f3efe9;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;padding:4px 12px;transition:all .12s cubic-bezier(.2,.8,.2,1);transition:all var(--duration-fast) var(--ease)}.recent-chip:hover{border-color:#c19a3d;border-color:var(--saffron);color:#c19a3d;color:var(--saffron)}.recent-chip:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}.planner-picker-section{display:contents}.planner-picker-section-label{color:#8a8073;color:var(--text-muted);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;margin:12px 0 4px;text-transform:uppercase}.planner-picker-section-label:first-child{margin-top:0}.planner-picker-item--recent{border-left:2px solid #c19a3d;border-left:2px solid var(--saffron)}.recipe-grid{grid-gap:12px;grid-gap:var(--space-3);display:grid;gap:12px;gap:var(--space-3);grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:0}@media (min-width:640px){.recipe-grid{gap:16px;gap:var(--space-4);grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.recipe-grid{grid-template-columns:repeat(4,1fr)}}.card-recipe{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:border-color .12s cubic-bezier(.2,.8,.2,1),transform .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease)}.card-recipe:hover{border-color:#c19a3d;border-color:var(--saffron);transform:translateY(-1px)}.card-recipe:focus-visible{outline:2px solid #c19a3d;outline:2px solid var(--saffron);outline-offset:2px}.card-recipe-thumb{aspect-ratio:4/3;background:#0e0c0a;background:var(--surface-base);background-position:50%;background-size:cover;position:relative;width:100%}.card-recipe-thumb--placeholder{align-items:center;color:#8a8073;color:var(--text-muted);display:flex;justify-content:center}.card-recipe-body{display:flex;flex:1 1;flex-direction:column;gap:4px;padding:12px;padding:var(--space-3)}.card-recipe-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#f3efe9;color:var(--text-primary);display:-webkit-box;font-family:Fraunces,Georgia,"Source Serif Pro",serif;font-family:var(--font-display);font-size:15px;font-weight:600;font-weight:var(--weight-semibold);line-height:1.25;margin:0;overflow:hidden}.card-recipe-meta{color:#8a8073;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:11px;gap:4px}.card-recipe-meta-dot{color:#c19a3d;color:var(--saffron)}.recipe-grid-item--expanded{grid-column:1/-1}.recipe-grid-item--expanded .card-recipe{border-color:#c19a3d;border-color:var(--saffron)}@media (min-width:640px){.card-recipe-title{font-size:16px}}.field-floating{margin-bottom:12px;margin-bottom:var(--space-3);position:relative}.field-floating-input{background:#1a1815;background:var(--surface-raised);border:1px solid #2a2622;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-md);color:#f3efe9;color:var(--text-primary);font-family:inherit;font-size:16px;font-weight:400;font-weight:var(--weight-regular);height:52px;padding:18px 12px 6px;transition:border-color .12s cubic-bezier(.2,.8,.2,1),box-shadow .12s cubic-bezier(.2,.8,.2,1);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);width:100%}.field-floating-input:focus{border-color:#c19a3d;border-color:var(--saffron);box-shadow:0 0 0 3px #c19a3d1f;box-shadow:0 0 0 3px var(--saffron-soft,#c19a3d1f);outline:none}.field-floating>label{background:#0000;color:#8a8073;color:var(--text-muted);font-size:15px;font-weight:400;font-weight:var(--weight-regular);left:12px;padding:0;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:top .12s cubic-bezier(.2,.8,.2,1),transform .12s cubic-bezier(.2,.8,.2,1),font-size .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);transition:top var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease),font-size var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.field-floating-input:focus+label,.field-floating-input:not(:placeholder-shown)+label{color:#c19a3d;color:var(--saffron);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.04em;text-transform:uppercase;top:8px;transform:translateY(0)}.field-floating-input:not(:focus):not(:placeholder-shown)+label{color:#8a8073;color:var(--text-muted)}@media (prefers-reduced-motion:reduce){.field-floating-input,.field-floating>label{transition:none}}.cmdk-overlay{align-items:flex-start;animation:cmdkOverlayIn .12s cubic-bezier(.2,.8,.2,1);animation:cmdkOverlayIn var(--duration-fast) var(--ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;display:flex;inset:0;justify-content:center;padding:10vh 16px 16px;padding:10vh var(--space-4) var(--space-4);position:fixed;z-index:10001}@keyframes cmdkOverlayIn{0%{opacity:0}to{opacity:1}}.cmdk-panel{animation:cmdkPanelIn .2s cubic-bezier(.2,.8,.2,1);animation:cmdkPanelIn var(--duration-normal) var(--ease);background:#1a1815d9;background:var(--surface-overlay,var(--surface-raised));border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;box-shadow:var(--shadow-floating);max-width:560px;overflow:hidden;width:100%}@keyframes cmdkPanelIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.cmdk-input-row{align-items:center;border-bottom:1px solid #2a2622;border-bottom:1px solid var(--border-subtle);display:flex;gap:12px;gap:var(--space-3);padding:12px 16px;padding:var(--space-3) var(--space-4)}.cmdk-input-icon{color:#8a8073;color:var(--text-muted);flex-shrink:0}.cmdk-input{background:#0000;border:none;color:#f3efe9;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:16px;outline:none}.cmdk-input::placeholder,.cmdk-kbd{color:#8a8073;color:var(--text-muted)}.cmdk-kbd{background:#0e0c0a;background:var(--surface-base);border:1px solid #2a2622;border:1px solid var(--border-subtle);border-radius:6px;border-radius:var(--radius-sm);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-family:var(--font-mono,"JetBrains Mono",monospace);font-size:11px;padding:2px 6px;text-transform:lowercase}.cmdk-results{max-height:50vh;overflow-y:auto;padding:8px 0;padding:var(--space-2) 0}.cmdk-empty{color:#8a8073;color:var(--text-muted);font-size:14px;font-size:var(--text-sm);margin:0;padding:16px;padding:var(--space-4);text-align:center}.cmdk-group{padding:4px 0}.cmdk-group-label{color:#8a8073;color:var(--text-muted);font-size:11px;font-weight:500;font-weight:var(--weight-medium);letter-spacing:.5px;margin:4px 16px;margin:4px var(--space-4);text-transform:uppercase}.cmdk-item{align-items:center;background:#0000;border:none;color:#f3efe9;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-size:var(--text-sm);gap:12px;gap:var(--space-3);padding:10px 16px;padding:10px var(--space-4);text-align:left;transition:background .12s cubic-bezier(.2,.8,.2,1);transition:background var(--duration-fast) var(--ease);width:100%}.cmdk-item.is-active{background:#c19a3d1f;background:var(--saffron-soft,#c19a3d14)}.cmdk-item-icon{color:#8a8073;color:var(--text-muted);flex-shrink:0}.cmdk-item.is-active .cmdk-item-icon{color:#c19a3d;color:var(--saffron)}.cmdk-item-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-item-type{color:#8a8073;color:var(--text-muted);font-size:11px;letter-spacing:.5px;text-transform:uppercase}@media (prefers-reduced-motion:reduce){.cmdk-overlay,.cmdk-panel{animation:none}}
/*# sourceMappingURL=main.dae5aed9.css.map*/