*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#c5622e;--primary-dark:#a34e23;--primary-light:#f9ede6;--primary-mid:#edcfbf;--text:#1a1a1a;--text-secondary:#6b6b6b;--text-tertiary:#9e9e9e;--bg:#faf8f5;--surface:#fff;--surface-raised:#fff;--border:#e8e2d9;--border-light:#f0ebe3;--success:#16a34a;--success-light:#dcfce7;--success-dark:#15803d;--success-border:#86efac;--success-text:#166534;--warning:#d97706;--warning-light:#fef3c7;--warning-text:#92400e;--danger:#dc2626;--danger-light:#fee2e2;--danger-dark:#b91c1c;--danger-border:#fecaca;--info:#2563eb;--info-light:#eff6ff;--info-text:#1e40af;--locked:#bfbab4;--locked-bg:#f5f3f0;--text-on-primary:#fff;--media-bg:#000;--overlay:#00000073;--badge-free:#16a34a;--badge-free-bg:#dcfce7;--badge-basic:#2563eb;--badge-basic-bg:#dbeafe;--badge-pro:#7c3aed;--badge-pro-bg:#ede9fe;--badge-unlimited:#b45309;--badge-unlimited-bg:#fef3c7;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow:0 4px 12px #00000014, 0 1px 3px #0000000a;--shadow-lg:0 12px 32px #0000001a, 0 4px 8px #0000000f;--shadow-primary:0 1px 3px #c5622e4d;--shadow-dropdown:0 6px 20px #00000014;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:Georgia, "Times New Roman", serif;--focus-ring:#c5622e1f;--focus-ring-soft:#c5622e14;--focus-ring-strong:#c5622e2e;--z-nav:100;--z-dropdown:200;--z-modal:300;--transition:.15s ease;--nav-bg:#ffffffd9;--hero-glow:radial-gradient(ellipse 90% 65% at 50% -10%, #c5622e1f, transparent 70%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--primary:#e27a45;--primary-dark:#ee8a52;--primary-light:#33251c;--primary-mid:#4a3527;--text:#f0eae2;--text-secondary:#a89e92;--text-tertiary:#7a7166;--bg:#161310;--surface:#201c18;--surface-raised:#282320;--border:#3a332c;--border-light:#2e2823;--success:#4ade80;--success-light:#14291c;--success-dark:#86efac;--success-border:#2d5a3c;--success-text:#86efac;--warning:#fbbf24;--warning-light:#2e2410;--warning-text:#fcd34d;--danger:#f87171;--danger-light:#321a1a;--danger-dark:#fca5a5;--danger-border:#5c2b2b;--info:#60a5fa;--info-light:#16202e;--info-text:#93c5fd;--locked:#5c564e;--locked-bg:#26221e;--text-on-primary:#fff;--media-bg:#000;--overlay:#000000a6;--badge-free:#4ade80;--badge-free-bg:#14291c;--badge-basic:#60a5fa;--badge-basic-bg:#152030;--badge-pro:#a78bfa;--badge-pro-bg:#221a33;--badge-unlimited:#fbbf24;--badge-unlimited-bg:#2e2410;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow:0 4px 12px #00000073, 0 1px 3px #0000004d;--shadow-lg:0 12px 32px #0000008c, 0 4px 8px #00000059;--shadow-primary:0 1px 3px #00000073;--shadow-dropdown:0 6px 20px #00000080;--focus-ring:#e27a4540;--focus-ring-soft:#e27a452e;--focus-ring-strong:#e27a4559;--nav-bg:#161310d9;--hero-glow:radial-gradient(ellipse 90% 65% at 50% -10%, #e27a4529, transparent 70%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scroll-behavior:smooth;scrollbar-gutter:stable;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}.container{max-width:1100px;margin:0 auto;padding:0 24px}.container-sm{max-width:720px;margin:0 auto;padding:0 24px}.container-xs{max-width:520px;margin:0 auto;padding:0 24px}.section{padding:72px 0}.section-sm{padding:48px 0}.nav{background:var(--nav-bg);-webkit-backdrop-filter:blur(12px)saturate(1.4);border-bottom:1px solid var(--border);z-index:var(--z-nav);position:sticky;top:0}.nav-inner{align-items:center;gap:32px;max-width:1100px;height:60px;margin:0 auto;padding:0 24px;display:flex}.nav-logo{color:var(--text);flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.logo-mark{background:var(--primary);width:34px;height:34px;color:var(--text-on-primary);border-radius:var(--radius-sm);letter-spacing:.5px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.logo-name{font-size:17px;font-weight:600}.nav-links{flex:1;gap:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 12px;font-size:15px;text-decoration:none;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--bg);text-decoration:none}.nav-link.active{color:var(--text);font-weight:500}.nav-right{align-items:center;gap:10px;margin-left:auto;display:flex}.theme-toggle{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;transition:background var(--transition), border-color var(--transition), transform var(--transition);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:15px;line-height:1;display:flex}.theme-toggle:hover{background:var(--primary-light);border-color:var(--primary-mid);transform:rotate(15deg)}.nav-user-menu{position:relative}.nav-user-trigger{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);color:var(--text);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:6px 10px 6px 6px;font-size:14px;transition:border-color .15s,background .15s;display:inline-flex}.nav-user-trigger:hover{border-color:var(--text-secondary);background:var(--bg)}.nav-user-avatar{background:var(--primary);width:28px;height:28px;color:var(--text-on-primary);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.nav-user-email{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.nav-user-caret{color:var(--text-secondary);font-size:11px}.nav-user-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-dropdown);z-index:var(--z-dropdown);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.nav-user-item{color:var(--text);border-radius:var(--radius-sm);text-align:left;cursor:pointer;font-size:14px;font-family:var(--font);background:0 0;border:none;width:100%;padding:8px 12px;display:block}.nav-user-item:hover{background:var(--bg);color:var(--text);text-decoration:none}.nav-user-signout{color:var(--danger)}.nav-user-signout:hover{color:var(--danger);background:var(--bg)}@media (max-width:640px){.nav-user-email{display:none}}.nav-tier{background:var(--badge-free-bg);color:var(--badge-free);border-radius:20px;padding:3px 8px;font-size:12px;font-weight:600}.nav-tier.tier-basic{background:var(--badge-basic-bg);color:var(--badge-basic)}.nav-tier.tier-pro{background:var(--badge-pro-bg);color:var(--badge-pro)}.nav-tier.tier-unlimited{background:var(--badge-unlimited-bg);color:var(--badge-unlimited)}.btn{font-family:var(--font);border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}.btn-primary:hover{background:var(--primary-dark);color:var(--text-on-primary)}.btn-outline{color:var(--text);border:1.5px solid var(--border);background:0 0}.btn-outline:hover{border-color:var(--text-secondary)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-success{background:var(--success);color:var(--text-on-primary)}.btn-success:hover{background:var(--success-dark);color:var(--text-on-primary)}.btn-danger{background:var(--danger);color:var(--text-on-primary)}.btn-danger:hover{background:var(--danger-dark);color:var(--text-on-primary)}.btn-lg{border-radius:var(--radius-lg);padding:14px 28px;font-size:17px}.btn-sm{border-radius:var(--radius-sm);padding:7px 14px;font-size:14px}.btn-xs{border-radius:var(--radius-sm);padding:4px 10px;font-size:12px}.btn-full{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-icon{border-radius:var(--radius-sm);width:36px;height:36px;padding:0;font-size:18px}.badge{letter-spacing:.3px;text-transform:uppercase;border-radius:20px;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-free{background:var(--badge-free-bg);color:var(--badge-free)}.badge-basic{background:var(--badge-basic-bg);color:var(--badge-basic)}.badge-pro{background:var(--badge-pro-bg);color:var(--badge-pro)}.badge-unlimited{background:var(--badge-unlimited-bg);color:var(--badge-unlimited)}.badge-skill{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.badge-done{background:var(--success-light);color:var(--success)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow .2s,transform .2s;overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-mid);transform:translateY(-3px)}.card-locked{opacity:.75}.card-locked:hover{box-shadow:none;cursor:default;transform:none}.card-body{padding:20px}.card-header{padding:20px 20px 0}.card-footer{padding:0 20px 20px}.progress-bar{background:var(--border);border-radius:99px;height:6px;overflow:hidden}.progress-fill{background:var(--success);border-radius:99px;height:100%;transition:width .4s}.progress-label{color:var(--text-secondary);margin-top:6px;font-size:13px}.dots{align-items:center;gap:3px;display:inline-flex}.dot{background:var(--border);border-radius:50%;width:6px;height:6px}.dot-filled{background:var(--primary)}.divider{border:none;border-top:1px solid var(--border);margin:32px 0}.input,input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=number],textarea,select{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-family:var(--font);color:var(--text);background:var(--surface);padding:11px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input:focus,input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.form-group{margin-bottom:18px}.form-label,label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.choice-grid{flex-direction:column;gap:10px;display:flex}.choice-card{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);align-items:center;gap:12px;padding:16px 18px;transition:border-color .15s,background .15s;display:flex}.choice-card:hover{border-color:var(--primary-mid);background:var(--primary-light)}.choice-card.selected{border-color:var(--primary);background:var(--primary-light)}.choice-icon{flex-shrink:0;font-size:22px}.choice-text h4{margin-bottom:2px;font-size:15px;font-weight:600}.choice-text p{color:var(--text-secondary);font-size:13px;line-height:1.4}.hero{text-align:center;background:var(--hero-glow);padding:96px 0 72px}.hero-eyebrow{letter-spacing:.5px;text-transform:uppercase;color:var(--primary);background:var(--primary-light);border:1px solid var(--primary-mid);border-radius:20px;margin-bottom:20px;padding:5px 14px;font-size:13px;font-weight:600;display:inline-block}.hero-title{font-family:var(--font-display);letter-spacing:-.5px;color:var(--text);margin-bottom:20px;font-size:clamp(38px,5.5vw,64px);font-weight:700;line-height:1.12}.hero-title em{color:var(--primary)}.hero-subtitle{color:var(--text-secondary);max-width:560px;margin:0 auto 36px;font-size:clamp(17px,2vw,20px);line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hero-note{color:var(--text-tertiary);margin-top:12px;font-size:13px}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.pricing-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;padding:28px 24px;display:flex}.pricing-card.featured,.plan-card--current{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring-soft)}.pricing-badge{margin-bottom:16px}.pricing-price{margin-bottom:6px}.pricing-amount{font-size:36px;font-weight:700;line-height:1}.pricing-period{color:var(--text-secondary);font-size:14px}.pricing-annual{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.pricing-name{margin-bottom:8px;font-size:18px;font-weight:600}.pricing-desc{color:var(--text-secondary);margin-bottom:20px;font-size:14px;line-height:1.5}.pricing-features{flex:1;margin-bottom:24px;list-style:none}.pricing-features li{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:8px;padding:7px 0;font-size:14px;display:flex}.pricing-features li:last-child{border-bottom:none}.check{color:var(--success);flex-shrink:0;margin-top:1px;font-size:15px}.callout{border-radius:var(--radius);padding:16px 20px;font-size:14px;line-height:1.6}.callout-info{background:var(--info-light);border-left:3px solid var(--info);color:var(--info-text)}.callout-success{background:var(--success-light);border-left:3px solid var(--success);color:var(--success-text)}.callout-warning{background:var(--warning-light);border-left:3px solid var(--warning);color:var(--warning-text)}.feature-item{gap:16px;display:flex}.feature-icon{background:linear-gradient(135deg, var(--primary-light), var(--primary-mid));border:1px solid var(--primary-mid);border-radius:var(--radius);width:48px;height:48px;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:22px;display:flex}.feature-title{margin-bottom:6px;font-size:17px;font-weight:600}.feature-desc{color:var(--text-secondary);font-size:14px;line-height:1.6}.persona-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.persona-emoji{margin-bottom:10px;font-size:28px}.persona-name{margin-bottom:4px;font-size:15px;font-weight:600}.persona-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.unlock-sequence{flex-direction:column;gap:8px;margin:24px 0;display:flex}.unlock-recipe-row{border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);align-items:center;gap:14px;padding:12px 16px;display:flex}.unlock-recipe-row.unlocked{background:var(--success-light);border-color:var(--success-border)}.unlock-recipe-row.locked{opacity:.6}.unlock-icon{font-size:18px}.unlock-recipe-title{flex:1;font-size:15px;font-weight:500}.unlock-status{font-size:13px;font-weight:600}.unlocked .unlock-status{color:var(--success)}.locked .unlock-status{color:var(--locked)}.section-header{margin-bottom:32px}.section-title{margin-bottom:8px;font-size:clamp(22px,3vw,28px);font-weight:700}.section-subtitle{color:var(--text-secondary);font-size:16px}.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px;display:grid}.breadcrumb{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:20px;font-size:14px;display:flex}.breadcrumb a{color:var(--text-secondary)}.breadcrumb a:hover{color:var(--text);text-decoration:none}.breadcrumb-sep{color:var(--border)}.text-center{text-align:center}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:14px}.font-medium{font-weight:500}.font-bold{font-weight:700}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}.mb-40{margin-bottom:40px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}.flex{display:flex}.items-center{align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.recipes-page{max-width:1200px;margin:0 auto;padding:40px 24px 64px}.recipes-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:28px;display:flex}.recipes-header h1{font-family:var(--font-display);margin:0;font-size:clamp(28px,3.5vw,36px);font-weight:700}.recipes-count{color:var(--text-secondary);margin:0;font-size:14px}.recipes-layout{grid-template-columns:260px 1fr;align-items:start;gap:32px;display:grid}.recipes-sidebar{position:sticky;top:80px}.recipes-main{min-width:0}.recipe-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;padding:20px;display:flex}.filter-field{flex-direction:column;gap:6px;display:flex}.filter-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);margin:0;font-size:12px;font-weight:600}.filter-checkboxes{flex-direction:column;gap:8px;margin-top:2px;display:flex}.filter-checkbox-label{color:var(--text);cursor:pointer;align-items:center;gap:8px;margin:0;padding:2px 0;font-size:14px;font-weight:400;display:flex}.filter-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;margin:0}.pagination{border-top:1px solid var(--border-light);justify-content:center;align-items:center;gap:16px;margin-top:32px;padding-top:24px;display:flex}.pagination-btn{font-family:var(--font);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 16px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.pagination-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text-secondary);font-size:14px}@media (max-width:900px){.recipes-layout{grid-template-columns:1fr}.recipes-sidebar{position:static}}.plan-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;padding:28px 24px;display:flex;position:relative}.plan-card--current,.plan-card--popular{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring-soft)}.plan-card__content{flex-direction:column;flex:1;gap:0;display:flex}.plan-card__header{margin-bottom:20px}.plan-card__title-row{justify-content:space-between;align-items:center;gap:12px;min-height:24px;margin-bottom:10px;display:flex}.plan-card__popular-badge,.plan-card__current-badge{letter-spacing:.4px;text-transform:uppercase;border-radius:20px;flex-shrink:0;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.plan-card__popular-badge{background:var(--primary-light);color:var(--primary)}.plan-card__current-badge{background:var(--success-light);color:var(--success)}.plan-card__name{margin:0;font-size:18px;font-weight:600}.plan-card__price{align-items:baseline;gap:4px;margin-bottom:6px;font-size:36px;font-weight:700;line-height:1;display:flex}.plan-card__price-period{color:var(--text-secondary);font-size:14px;font-weight:500}.plan-card__annual-total,.plan-card__savings{color:var(--text-secondary);margin:4px 0 0;font-size:13px}.plan-card__savings{color:var(--success);font-weight:600}.plan-card__features{flex:1;margin:0 0 24px;padding:0;list-style:none}.plan-card__feature{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:8px;padding:7px 0;font-size:14px;line-height:1.5;display:flex}.plan-card__feature:last-child{border-bottom:none}.plan-card__feature>span[aria-hidden=true]{color:var(--success);flex-shrink:0;margin-top:1px;font-weight:700}.plan-card__cta{margin-top:auto}.plan-card__cta-link{background:var(--primary);width:100%;color:var(--text-on-primary);border-radius:var(--radius);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.plan-card__cta-link:hover{background:var(--primary-dark);color:var(--text-on-primary);text-decoration:none}.plan-card__cta-current{width:100%;color:var(--success);background:var(--success-light);border-radius:var(--radius);justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:500;display:inline-flex}.upgrade-button-wrapper{width:100%}.upgrade-button{width:100%;font-family:var(--font);border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.upgrade-button--upgrade{background:var(--primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}.upgrade-button--upgrade:hover{background:var(--primary-dark);color:var(--text-on-primary)}.upgrade-button--upgrade:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.upgrade-button--signin{color:var(--text);border:1.5px solid var(--border);background:0 0}.upgrade-button--signin:hover{border-color:var(--primary);color:var(--primary);text-decoration:none}.upgrade-button__error{color:var(--danger);margin:8px 0 0;font-size:13px}.comparison-table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;font-size:14px;overflow:hidden}.comparison-table th,.comparison-table td{text-align:left;border-bottom:1px solid var(--border-light);padding:14px 16px}.comparison-table tbody tr:last-child td{border-bottom:none}.comparison-table thead th{background:var(--bg);text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);font-size:13px;font-weight:600}.comparison-table__feature-col{width:45%}.comparison-table__col{text-align:center;width:18%}.comparison-table__col--current{color:var(--primary);background:var(--primary-light)!important}.comparison-table__feature-label{color:var(--text);font-weight:500}.comparison-table__cell{text-align:center;color:var(--text-secondary)}.comparison-table__check{background:var(--success-light);width:22px;height:22px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.comparison-table__cross{color:var(--text-tertiary);font-weight:400}@media (max-width:640px){.comparison-table th,.comparison-table td{padding:10px 8px;font-size:13px}}.learning-page{max-width:1200px;margin:0 auto;padding:40px 24px 64px}.learning-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:28px;display:flex}.learning-header h1{font-family:var(--font-display);margin:0;font-size:clamp(28px,3.5vw,36px);font-weight:700}.learning-count{color:var(--text-secondary);margin:0;font-size:14px}.learning-layout{grid-template-columns:260px 1fr;align-items:start;gap:32px;display:grid}.learning-sidebar{position:sticky;top:80px}.learning-main{min-width:0}.track-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;padding:20px;display:flex}.track-grid,.track-grid-loading{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.track-card-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--border) 50%, var(--border-light) 75%);border-radius:var(--radius-lg);background-size:200% 100%;height:280px;animation:1.4s infinite skeleton-shimmer}.track-grid-empty{text-align:center;color:var(--text-secondary);padding:3rem 1rem}.track-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.track-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.track-card-image{aspect-ratio:16/9;background:var(--primary-light);overflow:hidden}.track-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.track-card:hover .track-card-image img{transform:scale(1.03)}.track-card-body{flex-direction:column;gap:10px;padding:20px;display:flex}.track-card-badges{flex-wrap:wrap;gap:6px;display:flex}.track-card-title{margin:0;font-size:18px;font-weight:700;line-height:1.3}.track-card-description{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.track-card-meta{border-top:1px solid var(--border-light);color:var(--text-secondary);align-items:center;gap:12px;margin-top:auto;padding-top:12px;font-size:13px;display:flex}.track-skill-level{color:var(--text);font-weight:600}.track-recipe-count:before{content:"·";color:var(--text-tertiary);margin-right:12px}.track-type-badge{letter-spacing:.3px;text-transform:uppercase;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.track-type-series{background:var(--badge-free-bg);color:var(--badge-free)}.track-type-course{background:var(--badge-pro-bg);color:var(--badge-pro)}.track-gated-badge{color:var(--text-secondary);font-size:12px}@media (max-width:900px){.learning-layout{grid-template-columns:1fr}.learning-sidebar{position:static}}.billing-success{justify-content:center;max-width:640px;margin:0 auto;padding:64px 24px;display:flex}.billing-success__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;width:100%;box-shadow:var(--shadow);padding:48px 40px}.billing-success__icon{background:var(--success-light);width:64px;height:64px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:20px;font-size:32px;font-weight:700;display:inline-flex}.billing-success__title{font-family:var(--font-display);margin:0 0 14px;font-size:clamp(24px,3.5vw,32px);font-weight:700;line-height:1.2}.billing-success__body{color:var(--text-secondary);margin:0 0 10px;font-size:16px;line-height:1.55}.billing-success__email-note{color:var(--text-tertiary);margin:0 0 28px;font-size:13px}.billing-success__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.billing-success__cta{background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.billing-success__cta:hover{background:var(--primary-dark);color:var(--text-on-primary);text-decoration:none}.billing-success__cta--secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border);box-shadow:none}.billing-success__cta--secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--surface)}@media (max-width:640px){.billing-success{padding:32px 16px}.billing-success__card{padding:32px 24px}}.dashboard-page{max-width:900px;margin:0 auto;padding:40px 24px 64px}.dashboard-page h1{font-family:var(--font-display);margin:0 0 24px;font-size:clamp(28px,3.5vw,36px);font-weight:700}.dashboard-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);margin:0;padding:40px 24px}.dashboard-empty a{color:var(--primary);font-weight:500}.dashboard-enrollment-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.dashboard-enrollment-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:16px 24px;padding:20px 24px;display:grid}.enrollment-info{flex-direction:column;grid-area:1/1/auto/-1;gap:4px;display:flex}.enrollment-type{letter-spacing:.4px;text-transform:uppercase;color:var(--primary);background:var(--primary-light);border-radius:20px;align-self:start;padding:3px 10px;font-size:11px;font-weight:700}.enrollment-title{font-family:var(--font-display);margin:4px 0 0;font-size:20px;font-weight:700;line-height:1.3}.enrollment-status{color:var(--text-secondary);text-transform:capitalize;font-size:12px}.dashboard-enrollment-item .progress-bar-wrapper{grid-area:2/1}.enrollment-continue-link{background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius);box-shadow:var(--shadow-primary);white-space:nowrap;grid-area:2/2;justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.enrollment-continue-link:hover{background:var(--primary-dark);color:var(--text-on-primary);text-decoration:none}.certificate-page{max-width:720px;margin:0 auto;padding:48px 24px 64px}.certificate-card{background:var(--surface);border:2px solid var(--primary);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-lg);padding:56px 40px;position:relative}.certificate-card:before{content:"";border:1px solid var(--primary-mid);border-radius:calc(var(--radius-xl) - 4px);pointer-events:none;position:absolute;inset:8px}.certificate-heading{font-family:var(--font-display);letter-spacing:.5px;text-transform:uppercase;color:var(--primary);margin:0 0 20px;font-size:clamp(22px,3vw,28px);font-weight:700}.certificate-track-title{font-family:var(--font-display);color:var(--text);margin:0 0 10px;font-size:clamp(28px,4.5vw,40px);font-weight:700;line-height:1.2}.certificate-track-type{letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary);margin:0 0 28px;font-size:13px;font-weight:600}.certificate-completed-at{color:var(--text-secondary);margin:0 0 32px;font-size:15px;font-style:italic}.certificate-dashboard-link{border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.certificate-dashboard-link:hover{border-color:var(--primary);color:var(--primary);text-decoration:none}@media (max-width:640px){.dashboard-page,.certificate-page{padding:24px 16px 48px}.dashboard-enrollment-item{grid-template-columns:1fr}.enrollment-continue-link{grid-area:3/1;justify-self:start}.certificate-card{padding:40px 24px}}.creator-page{max-width:860px;margin:0 auto;padding:40px 24px 64px}.creator-page h1,.creator-page h2:first-child,.creator-dashboard-header h1{font-family:var(--font-display)}.recipe-create-container,.recipe-edit-container,.video-extract-container{flex-direction:column;gap:20px;display:flex}.recipe-create-container h1,.recipe-edit-container h1,.video-extract-container h1{margin:0 0 4px;font-size:clamp(26px,3.5vw,34px);font-weight:700}.recipe-create-container>p,.recipe-edit-container>p,.video-extract-container>p{color:var(--text-secondary);margin:0 0 12px;font-size:15px}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:14px;padding:20px 24px;display:flex}.form-section h2,.form-section h3{font-family:var(--font-display);margin:0 0 4px;font-size:18px;font-weight:700}.creator-page .field,.video-extract-container .field,.recipe-create-container .field,.recipe-edit-container .field{margin-bottom:4px}.creator-page .field label,.video-extract-container .field label,.recipe-create-container .field label,.recipe-edit-container .field label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.ingredient-row,.step-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr auto;gap:10px 12px;padding:12px;display:grid}.ingredient-row input,.step-row textarea,.step-row input{width:100%}.step-row textarea{grid-column:1/-1}.ingredient-row button,.step-row button{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;align-self:start;padding:6px 12px;font-size:13px;font-weight:500}.ingredient-row button:hover,.step-row button:hover{border-color:var(--danger);color:var(--danger)}.submit-button,.save-button,.publish-button,.extract-button{font-family:var(--font);border-radius:var(--radius);background:var(--primary);color:var(--text-on-primary);cursor:pointer;box-shadow:var(--shadow-primary);border:none;padding:10px 20px;font-size:15px;font-weight:500;transition:background .15s}.submit-button:hover:not(:disabled),.save-button:hover:not(:disabled),.publish-button:hover:not(:disabled),.extract-button:hover:not(:disabled){background:var(--primary-dark)}.submit-button:disabled,.save-button:disabled,.publish-button:disabled,.extract-button:disabled{opacity:.5;cursor:not-allowed}.save-button{background:var(--surface);color:var(--text);border:1.5px solid var(--border);box-shadow:none}.save-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--surface)}.recipe-create-success{background:var(--success-light);border:1px solid var(--success-border);border-radius:var(--radius);color:var(--success-text);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;font-size:14px;display:flex}.dashboard-link{color:var(--primary);font-weight:500}.field-hint{color:var(--text-secondary);margin:4px 0 0;font-size:13px}.extraction-progress{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);padding:14px 18px;font-size:14px}.extracted-data,.steps-data{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);padding:14px 16px;font-size:13px;overflow-x:auto}.creator-dashboard{flex-direction:column;gap:20px;display:flex}.creator-dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.creator-dashboard-header h1{margin:0;font-size:clamp(26px,3.5vw,34px);font-weight:700}.create-recipe-link{background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.create-recipe-link:hover{background:var(--primary-dark);color:var(--text-on-primary);text-decoration:none}.creator-dashboard-loading,.creator-dashboard-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);padding:40px 24px}.creator-recipe-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.creator-recipe-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;font-size:15px;display:flex}.creator-recipe-item:last-child{border-bottom:none}.creator-recipe-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.creator-recipe-title:hover{color:var(--primary)}.creator-agreement-page{max-width:720px;margin:0 auto;padding:40px 24px 64px}.creator-agreement-page__header{margin-bottom:24px}.creator-agreement-page h1{font-family:var(--font-display);margin:0 0 6px;font-size:clamp(28px,3.5vw,36px);font-weight:700}.creator-agreement-page__doc-link{margin:0 0 16px;font-size:14px}.creator-agreement-page__doc-link a{color:var(--primary);font-weight:500}.creator-agreement-page .settings-panel+.settings-panel{margin-top:16px}.creator-agreement-history{margin:0;padding:0;list-style:none}.creator-agreement-history li{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;display:flex}.creator-agreement-history li:last-child{border-bottom:none}.creator-agreement-history__version{color:var(--text);font-weight:500}.creator-agreement-history__date{color:var(--text-secondary);font-variant-numeric:tabular-nums}@media (max-width:640px){.creator-page,.creator-agreement-page{padding:24px 16px 48px}.ingredient-row,.step-row{grid-template-columns:1fr}}.content-page{max-width:760px;margin:0 auto;padding:40px 24px 64px}.content-page__header{margin-bottom:28px}.content-page h1{font-family:var(--font-display);letter-spacing:-.3px;margin:0 0 12px;font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.15}.content-page h2{font-family:var(--font-display);margin:32px 0 14px;font-size:22px;font-weight:700}.content-page h2:first-child{margin-top:0}.content-page section+section{margin-top:8px}.content-page__lede{color:var(--text-secondary);max-width:620px;margin:0;font-size:17px;line-height:1.6}.content-meta{grid-template-columns:auto 1fr;gap:6px 16px;margin:16px 0 0;font-size:14px;display:grid}.content-meta dt{text-transform:uppercase;letter-spacing:.4px;color:var(--text-tertiary);align-self:center;font-size:11px;font-weight:600}.content-meta dd{color:var(--text);margin:0;font-weight:500}.content-recipe-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.content-recipe-list li{border-bottom:1px solid var(--border-light)}.content-recipe-list li:last-child{border-bottom:none}.content-recipe-list a{color:var(--text);align-items:center;padding:14px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.content-recipe-list a:after{content:"→";color:var(--text-tertiary);margin-left:auto;transition:color .15s,transform .15s}.content-recipe-list a:hover{background:var(--bg);color:var(--primary)}.content-recipe-list a:hover:after{color:var(--primary);transform:translate(2px)}.content-steps{counter-reset:content-step;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.content-steps li{counter-increment:content-step;color:var(--text);padding:0 0 24px 48px;font-size:16px;line-height:1.65;position:relative}.content-steps li:before{content:counter(content-step);background:var(--primary);width:32px;height:32px;color:var(--text-on-primary);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;top:0;left:0}.content-steps li:not(:last-child):after{content:"";background:var(--border-light);width:2px;position:absolute;top:32px;bottom:0;left:15px}.substitution-options{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.substitution-option{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}.substitution-option__header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.substitution-option__impact{letter-spacing:.3px;text-transform:uppercase;background:var(--bg);color:var(--text-secondary);border-radius:20px;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.substitution-option.impact-none .substitution-option__impact,.substitution-option.impact-minimal .substitution-option__impact{background:var(--success-light);color:var(--success)}.substitution-option.impact-minor .substitution-option__impact,.substitution-option.impact-moderate .substitution-option__impact{background:var(--warning-light);color:var(--warning)}.substitution-option.impact-significant .substitution-option__impact,.substitution-option.impact-major .substitution-option__impact{background:var(--danger-light);color:var(--danger)}.substitution-option__context{color:var(--text-secondary);font-size:13px}.substitution-option__notes{color:var(--text-secondary);margin:0 0 12px;font-size:14px;line-height:1.55}.substitution-option__items{margin:0;padding:0;list-style:none}.substitution-option__items li{border-top:1px dashed var(--border-light);gap:8px;padding:6px 0;font-size:15px;display:flex}.substitution-option__items li:first-child{border-top:none;padding-top:0}.substitution-option__item-qty{color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:80px}.substitution-option__item-name{color:var(--text);font-weight:500}@media (max-width:640px){.content-page{padding:24px 16px 48px}}.billing-history-page{max-width:820px;margin:0 auto;padding:40px 24px 64px}.billing-history-page>h1{font-family:var(--font-display);margin:0 0 8px;font-size:clamp(28px,3.5vw,36px);font-weight:700}.billing-history-page>section>h2{font-family:var(--font-display);color:var(--text-secondary);margin:0 0 20px;font-size:18px;font-weight:700}.billing-history-page>section>h2[id=billing-history-heading]{text-transform:uppercase;letter-spacing:.4px;font-size:14px;font-family:var(--font);font-weight:600}.billing-history__filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:24px;padding:16px 20px;display:flex}.billing-history__filters label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);margin:0;padding-bottom:2px;font-size:12px;font-weight:600}.billing-history__filters input[type=date]{width:auto;min-width:160px;padding:8px 12px;font-size:14px}.billing-history__filters button{font-family:var(--font);border-radius:var(--radius);background:var(--primary);color:var(--text-on-primary);cursor:pointer;box-shadow:var(--shadow-primary);border:none;padding:9px 16px;font-size:14px;font-weight:500}.billing-history__filters button:hover{background:var(--primary-dark)}.billing-history__empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);margin:0;padding:40px 24px}.billing-history__invoices-section,.billing-history__events-section{margin-bottom:28px}.billing-history__invoices,.billing-history__events{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.billing-history__invoice{border-bottom:1px solid var(--border-light);padding:14px 20px}.billing-history__invoice:last-child{border-bottom:none}.billing-history__invoice-summary{flex-wrap:wrap;align-items:center;gap:16px;font-size:14px;display:flex}.billing-history__invoice-number{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600}.billing-history__invoice-date{color:var(--text-secondary);font-variant-numeric:tabular-nums}.billing-history__invoice-amount{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.billing-history__invoice-status{letter-spacing:.3px;text-transform:uppercase;border-radius:20px;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.billing-history__invoice-status--paid{background:var(--success-light);color:var(--success)}.billing-history__invoice-status--open{background:var(--warning-light);color:var(--warning)}.billing-history__invoice-status--draft{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.billing-history__invoice-status--void,.billing-history__invoice-status--uncollectible{background:var(--danger-light);color:var(--danger)}.billing-history__pdf-link{color:var(--primary);font-size:13px;font-weight:500}.billing-history__toggle{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:13px;font-weight:500}.billing-history__toggle:hover{border-color:var(--primary);color:var(--primary)}.billing-history__line-items{background:var(--bg);border-radius:var(--radius-sm);flex-direction:column;gap:8px;margin:12px 0 0;padding:14px 16px 4px;list-style:none;display:flex}.billing-history__line-item{color:var(--text-secondary);border-bottom:1px dashed var(--border-light);gap:12px;padding-bottom:8px;font-size:13px;display:flex}.billing-history__line-item:last-child{border-bottom:none}.billing-history__line-item>span:first-child{color:var(--text);flex:1}.billing-history__line-item>span:nth-child(2){color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.billing-history__line-item>span:nth-child(3){font-variant-numeric:tabular-nums;font-size:12px}.billing-history__event{border-bottom:1px solid var(--border-light);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 20px;font-size:14px;display:grid}.billing-history__event:last-child{border-bottom:none}.billing-history__event-type{letter-spacing:.3px;text-transform:uppercase;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.billing-history__event-description{color:var(--text);min-width:0}.billing-history__event-date{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:13px}@media (max-width:640px){.billing-history-page{padding:24px 16px 48px}.billing-history__invoice-summary{grid-template-columns:1fr auto;gap:6px 10px;display:grid}.billing-history__invoice-amount{grid-area:1/2;margin-left:0}.billing-history__event{grid-template-columns:1fr;gap:4px}}.collections-page,.collection-detail-page{max-width:1100px;margin:0 auto;padding:40px 24px 64px}.collections-page h1,.collection-detail-title h1{font-family:var(--font-display);margin:0;font-size:clamp(28px,3.5vw,36px);font-weight:700}.collections-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.collections-sort{color:var(--text-secondary);align-items:center;gap:10px;font-size:14px;display:flex}.collections-sort label{margin:0;font-weight:500}.collections-sort-select{width:auto;min-width:160px}.collections-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.collection-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow .15s,transform .15s;overflow:hidden}.collection-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.collection-card--default{border-color:var(--primary-mid)}.collection-card-link{color:inherit;padding:20px;text-decoration:none;display:block}.collection-card-link:hover{text-decoration:none}.collection-card-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.collection-card-name{margin:0;font-size:17px;font-weight:600;line-height:1.3}.collection-card-badges{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.collection-default-badge,.collection-public-badge,.collection-private-badge{letter-spacing:.3px;text-transform:uppercase;border-radius:20px;align-items:center;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.collection-default-badge{background:var(--primary-light);color:var(--primary)}.collection-public-badge{background:var(--badge-basic-bg);color:var(--badge-basic)}.collection-private-badge{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.collection-card-description{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.collection-card-count{color:var(--text-tertiary);font-size:13px;font-weight:500}.collections-empty,.collection-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.collections-empty a,.collection-empty a{color:var(--primary);font-weight:500}.collections-loading,.collection-loading{padding:8px 0}.collections-skeleton,.collection-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--border) 50%, var(--border-light) 75%);border-radius:var(--radius-lg);background-size:200% 100%;height:280px;animation:1.4s infinite skeleton-shimmer}.collection-detail-header{margin-bottom:28px}.collection-back-link{color:var(--text-secondary);align-items:center;margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-flex}.collection-back-link:hover{color:var(--text)}.collection-detail-title{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.collection-badges{flex-wrap:wrap;gap:6px;display:flex}.collection-detail-description{color:var(--text-secondary);max-width:720px;margin:0 0 8px;font-size:16px;line-height:1.6}.collection-detail-count{color:var(--text-tertiary);margin:0;font-size:13px;font-weight:500}.collection-recipe-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.collection-recipe-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;font-size:15px;display:flex}.collection-recipe-item:last-child{border-bottom:none}.collection-recipe-link{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;text-decoration:none;overflow:hidden}.collection-recipe-link:hover{color:var(--primary);text-decoration:underline}.collection-recipe-saved{color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.collection-pagination{border-top:1px solid var(--border-light);justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.collection-pagination-prev,.collection-pagination-next{font-family:var(--font);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 16px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.collection-pagination-prev:hover:not(:disabled),.collection-pagination-next:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.collection-pagination-prev:disabled,.collection-pagination-next:disabled{opacity:.4;cursor:not-allowed}.collection-pagination-info{color:var(--text-secondary);font-size:14px}@media (max-width:640px){.collections-page,.collection-detail-page{padding:24px 16px 48px}.collections-list{grid-template-columns:1fr}}.grocery-page{max-width:820px;margin:0 auto;padding:40px 24px 64px}.grocery-page h1{font-family:var(--font-display);margin:0 0 20px;font-size:clamp(28px,3.5vw,36px);font-weight:700}.grocery-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.grocery-page-header h1{margin:0}.grocery-clear-btn{font-family:var(--font);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);cursor:pointer;padding:8px 14px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.grocery-clear-btn:hover{border-color:var(--danger);color:var(--danger)}.grocery-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.grocery-empty a{color:var(--primary);font-weight:500}.grocery-loading{padding:8px 0}.grocery-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--border) 50%, var(--border-light) 75%);border-radius:var(--radius-lg);background-size:200% 100%;height:220px;animation:1.4s infinite skeleton-shimmer}.grocery-list{flex-direction:column;gap:20px;margin-top:20px;display:flex}.grocery-recipe-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.grocery-recipe-title{background:var(--bg);border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:16px 20px;font-size:16px;font-weight:600;display:flex}.grocery-recipe-title a{color:var(--text);text-decoration:none}.grocery-recipe-title a:hover{color:var(--primary);text-decoration:underline}.grocery-recipe-servings{color:var(--text-secondary);font-size:13px;font-weight:500}.grocery-ingredients{margin:0;padding:0;list-style:none}.grocery-item{border-bottom:1px solid var(--border-light);grid-template-columns:1fr 80px auto auto;align-items:center;gap:12px;padding:12px 20px;font-size:15px;display:grid}.grocery-item:last-child{border-bottom:none}.grocery-item--have{opacity:.55}.grocery-item--have .grocery-ingredient-name{text-decoration:line-through}.grocery-item-label{cursor:pointer;align-items:center;gap:10px;min-width:0;margin:0;display:flex}.grocery-item-check{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.grocery-ingredient-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.grocery-ingredient-qty-input{text-align:right;font-variant-numeric:tabular-nums;width:80px;padding:6px 10px;font-size:14px}.grocery-ingredient-unit{color:var(--text-secondary);font-size:13px}.grocery-ingredient-notes{color:var(--text-tertiary);grid-column:1/-1;padding-left:28px;font-size:13px;font-style:italic}.grocery-item-remove{font-family:var(--font);color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 10px;font-size:13px;font-weight:500;transition:color .15s,background .15s}.grocery-item-remove:hover{color:var(--danger);background:var(--danger-light)}@media (max-width:640px){.grocery-page{padding:24px 16px 48px}.grocery-item{grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:6px 10px}.grocery-ingredient-qty-input{grid-column:1;width:100px}.grocery-ingredient-unit{grid-column:2}.grocery-item-remove{grid-column:2;justify-self:end}}.track-detail-page{max-width:820px;margin:0 auto;padding:40px 24px 64px}.track-detail-header{margin-bottom:24px}.track-detail-type{letter-spacing:.4px;text-transform:uppercase;background:var(--primary-light);color:var(--primary);border-radius:20px;margin-bottom:12px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.track-detail-title{font-family:var(--font-display);letter-spacing:-.3px;margin:0 0 12px;font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.15}.track-detail-description{color:var(--text-secondary);max-width:680px;margin:0 0 14px;font-size:17px;line-height:1.6}.track-detail-skill{letter-spacing:.3px;text-transform:capitalize;background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.track-detail-progress{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:32px;padding:20px 24px}.progress-bar-wrapper{flex-direction:column;gap:10px;display:flex}.progress-bar-track{background:var(--border);border-radius:99px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--success);border-radius:99px;height:100%;transition:width .4s}.progress-bar-label{color:var(--text-secondary);margin:0;font-size:14px}.track-detail-recipes,.track-detail-history{margin-bottom:32px}.track-detail-recipes>h2,.track-detail-history>h2{font-family:var(--font-display);margin:0 0 16px;font-size:22px;font-weight:700}.track-preview{flex-direction:column;gap:16px;display:flex}.track-preview-unlock-message{background:var(--primary-light);border:1px solid var(--primary-mid);border-radius:var(--radius);color:var(--text);margin:0;padding:12px 16px;font-size:14px;line-height:1.55}.track-preview-progress{color:var(--text-secondary);font-size:13px;font-weight:500}.track-preview-recipes{flex-direction:column;gap:10px;display:flex}.track-preview-recipe{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:36px 1fr auto auto;align-items:center;gap:14px;padding:14px 18px;transition:border-color .15s,box-shadow .15s;display:grid}.track-preview-recipe--unlocked:hover{box-shadow:var(--shadow-sm)}.track-preview-recipe--completed{background:var(--success-light);border-color:var(--success-border)}.track-preview-recipe--locked{opacity:.7}.track-preview-recipe--next{border-color:var(--primary)}.track-preview-recipe-number{background:var(--bg);width:36px;height:36px;color:var(--text-secondary);border:1.5px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.track-preview-recipe--unlocked .track-preview-recipe-number{background:var(--surface);border-color:var(--primary-mid);color:var(--primary)}.track-preview-recipe--completed .track-preview-recipe-number{background:var(--success);border-color:var(--success);color:var(--text-on-primary);font-size:16px}.track-preview-recipe-info{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.track-preview-recipe-title{color:var(--text);font-size:15px;font-weight:500}.recipe-next-badge{letter-spacing:.3px;text-transform:uppercase;background:var(--primary);color:var(--text-on-primary);border-radius:20px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.track-preview-recipe-status{flex-shrink:0}.badge-unlocked{letter-spacing:.3px;text-transform:uppercase;background:var(--success-light);color:var(--success);border-radius:20px;padding:3px 8px;font-size:11px;font-weight:600}.badge-locked{letter-spacing:.3px;text-transform:uppercase;background:var(--locked-bg);color:var(--locked);border-radius:20px;padding:3px 8px;font-size:11px;font-weight:600}.track-preview-upgrade-gate{background:var(--surface);border:2px solid var(--primary-mid);border-radius:var(--radius-lg);text-align:center;padding:24px}.track-preview-upgrade-gate h3{font-family:var(--font-display);margin:0 0 8px;font-size:18px;font-weight:700}.track-preview-upgrade-gate p{color:var(--text-secondary);margin:0 0 16px;font-size:14px;line-height:1.55}.track-preview-start-btn{align-self:flex-start}.track-preview-signup-cta{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.track-preview-signup-cta p{color:var(--text-secondary);margin:0;font-size:15px}.completion-history-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.completion-history-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:14px;display:flex}.completion-history-item:last-child{border-bottom:none}.completion-history-slug{color:var(--text);font-weight:500}.completion-history-date{color:var(--text-secondary);font-variant-numeric:tabular-nums}@media (max-width:640px){.track-detail-page{padding:24px 16px 48px}.track-preview-recipe{grid-template-rows:auto auto;grid-template-columns:32px 1fr;gap:10px 12px}.track-preview-recipe-status{grid-column:2}}.settings-page{max-width:720px;margin:0 auto;padding:40px 24px 64px}.settings-page__header{margin-bottom:28px}.settings-page__header h1{font-family:var(--font-display);margin:0 0 6px;font-size:clamp(28px,3.5vw,36px);font-weight:700}.settings-page__header p{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.55}.settings-page__panels{flex-direction:column;gap:16px;display:flex}.settings-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 28px}.settings-panel--links{padding:18px 28px}.settings-panel--danger{border-color:var(--danger-border)}.settings-panel__heading-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.settings-panel__heading-row .settings-panel__title{margin:0}.settings-panel__title{font-family:var(--font-display);margin:0 0 6px;font-size:20px;font-weight:700}.settings-panel__subtitle{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.55}.settings-link{color:var(--primary);align-items:center;gap:6px;font-size:15px;font-weight:500;display:inline-flex}.settings-form{flex-direction:column;display:flex}.settings-form .form-group{margin-bottom:16px}.settings-form__actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.settings-success{background:var(--success-light);color:var(--success);border-radius:var(--radius-sm);margin-bottom:14px;padding:10px 14px;font-size:14px}.settings-mfa-setup{flex-direction:column;gap:12px;display:flex}.settings-mfa-secret{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);letter-spacing:.5px;word-break:break-all;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;display:block}.settings-mfa-enabled{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-mfa-status{color:var(--success);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.settings-mfa-dot{background:var(--success);border-radius:50%;width:8px;height:8px}.connected-accounts{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.connected-account{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.connected-account:first-child{padding-top:4px}.connected-account:last-child{border-bottom:none;padding-bottom:4px}.connected-account__provider{font-size:15px;font-weight:500}.subscription-management__details{grid-template-columns:auto 1fr;gap:8px 20px;margin:0 0 20px;font-size:14px;display:grid}.subscription-management__details dt{color:var(--text-secondary);font-weight:500}.subscription-management__details dd{color:var(--text);margin:0;font-weight:600}.subscription-management__cancellation-notice{background:var(--warning-light);color:var(--warning-text);border-radius:var(--radius-sm);margin:0 0 16px;padding:10px 14px;font-size:14px;line-height:1.55}.cancel-subscription-button{font-family:var(--font);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 16px;font-size:14px;font-weight:500}.cancel-subscription-button:hover{border-color:var(--text-secondary)}.cancel-subscription-confirm{flex-direction:column;gap:12px;display:flex}.cancel-subscription-confirm__message{color:var(--text);margin:0;font-size:14px;line-height:1.55}.cancel-subscription-confirm__reason{flex-direction:column;gap:6px;display:flex}.cancel-subscription-confirm__error{color:var(--danger);margin:0;font-size:13px}.cancel-subscription-confirm__actions{flex-wrap:wrap;gap:10px;display:flex}.cancel-subscription-confirm__confirm{font-family:var(--font);border-radius:var(--radius);background:var(--danger);color:var(--text-on-primary);cursor:pointer;border:none;padding:8px 16px;font-size:14px;font-weight:500}.cancel-subscription-confirm__confirm:hover{background:var(--danger-dark)}.cancel-subscription-confirm__back{font-family:var(--font);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:14px;font-weight:500}.cancel-subscription-confirm__back:hover{background:var(--bg);color:var(--text)}@media (max-width:640px){.settings-page{padding:24px 16px 48px}.settings-panel{padding:20px}}.onboarding-page{padding:48px 24px 64px}.onboarding-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);max-width:560px;margin:0 auto;padding:40px}.onboarding-question{margin-bottom:24px}.onboarding-question h1,.onboarding-question h2{font-family:var(--font-display);margin:0 0 8px;font-size:26px;font-weight:700;line-height:1.2}.onboarding-question p{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.55}.onboarding-fieldset{border:none;margin:0 0 28px;padding:0}.onboarding-fieldset legend{font-family:var(--font-display);margin-bottom:14px;padding:0;font-size:20px;font-weight:700;line-height:1.25}.choice-card__input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.choice-card:has(.choice-card__input:checked){border-color:var(--primary);background:var(--primary-light)}.choice-card:focus-within{box-shadow:0 0 0 3px var(--focus-ring-strong);outline:none}.onboarding-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.onboarding-actions__primary{margin-left:auto}.survey-recommendations{max-width:720px;margin:0 auto;padding:48px 24px 64px}.survey-recommendations__header{text-align:center;margin-bottom:28px}.survey-recommendations__header h2{font-family:var(--font-display);margin:0 0 8px;font-size:clamp(24px,3vw,32px);font-weight:700}.survey-recommendations__header p{color:var(--text-secondary);margin:0;font-size:15px}.track-recommendation{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px;list-style:none;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.track-recommendation:hover{border-color:var(--primary-mid)}.track-recommendation.best-match{border-color:var(--primary)}.best-match-label{background:var(--primary);color:var(--text-on-primary);letter-spacing:.4px;text-align:center;text-transform:uppercase;padding:6px 16px;font-size:12px;font-weight:700}.track-rec-body{padding:20px}.track-rec-title{margin:0 0 6px;font-size:18px;font-weight:600}.track-rec-desc{color:var(--text-secondary);margin:0 0 14px;font-size:14px;line-height:1.5}.track-rec-meta{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:inline-flex}.track-rec-enroll{width:100%}.enroll-error{background:var(--danger-light);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);margin-bottom:16px;padding:12px 16px;font-size:14px}.survey-recommendations__footer{text-align:center;margin-top:24px}.auth-page{justify-content:center;align-items:center;min-height:calc(100vh - 156px);padding:48px 24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);width:100%;max-width:440px;padding:40px}.auth-card__title{font-family:var(--font-display);margin-bottom:8px;font-size:28px;font-weight:700;line-height:1.2}.auth-card__subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:15px;line-height:1.5}.oauth-buttons{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.oauth-button{gap:10px;font-size:15px;font-weight:500}.oauth-button svg{flex-shrink:0}.oauth-apple svg{color:var(--text)}.auth-divider{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:12px;margin:4px 0 24px;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.field{margin-bottom:18px}.field label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.input[aria-invalid=true],.field input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);margin-top:6px;font-size:13px;line-height:1.4}.server-error{margin-bottom:18px}.submit-button{margin-top:8px}.sign-in-link{color:var(--text-secondary);text-align:center;margin-top:24px;font-size:14px}.sign-in-link a{color:var(--primary);font-weight:500}.home-insight{grid-template-columns:1fr 1fr;align-items:center;gap:48px;display:grid}.home-insight__title{font-family:var(--font-display);margin-bottom:16px;font-size:28px;font-weight:700;line-height:1.3}.home-insight__para{color:var(--text-secondary);margin-bottom:16px;font-size:16px;line-height:1.7}.home-insight__para:last-child{margin-bottom:0}.home-insight__compare{flex-direction:column;gap:16px;display:flex}.home-insight__vs{text-align:center;color:var(--text-tertiary);font-size:20px}.home-pricing-strip{flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:28px;font-size:15px;display:flex}.home-pricing-sep{color:var(--text-tertiary)}@media (max-width:768px){.home-insight{grid-template-columns:1fr;gap:32px}}.footer{background:var(--surface);border-top:1px solid var(--border);text-align:center;color:var(--text-tertiary);margin-top:80px;padding:32px 0;font-size:14px}.recipe-detail-page{max-width:820px;margin:0 auto;padding:32px 24px 64px}.recipe-detail-breadcrumb{margin-bottom:20px;font-size:14px}.recipe-detail-breadcrumb a{color:var(--text-secondary);text-decoration:none}.recipe-detail-breadcrumb a:hover{color:var(--text);text-decoration:underline}.recipe-detail{flex-direction:column;gap:32px;display:flex}.recipe-detail-hero{aspect-ratio:16/9;border-radius:var(--radius-lg);background:var(--primary-light);width:100%;overflow:hidden}.recipe-detail-image{object-fit:cover;width:100%;height:100%}.recipe-detail-content{flex-direction:column;gap:32px;display:flex}.recipe-detail-header h1{font-family:var(--font-display);letter-spacing:-.3px;margin:0 0 14px;font-size:clamp(30px,4.5vw,44px);line-height:1.15}.recipe-detail-meta{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.recipe-detail-meta span{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;align-items:center;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.recipe-detail-meta .recipe-rating{background:var(--warning-light);color:var(--warning);border-color:#0000;font-weight:600}.recipe-detail-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.save-recipe-btn,.grocery-add-btn,.recipe-detail-edit-link{font-family:var(--font);border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:15px;font-weight:500;line-height:1.2;text-decoration:none;transition:all .15s;display:inline-flex}.save-recipe-btn{background:var(--primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}.save-recipe-btn:hover{background:var(--primary-dark);color:var(--text-on-primary)}.save-recipe-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.grocery-add-btn{color:var(--text);border:1.5px solid var(--border);background:0 0}.grocery-add-btn:hover{border-color:var(--primary);color:var(--primary)}.grocery-add-btn:disabled{opacity:.6;cursor:not-allowed}.recipe-detail-edit-link{color:var(--text-secondary);border:1.5px dashed var(--border);background:0 0}.recipe-detail-edit-link:hover{color:var(--primary);border-color:var(--primary);text-decoration:none}.recipe-detail-description{color:var(--text-secondary);border-left:3px solid var(--primary-mid);margin:0;padding:4px 0 4px 20px;font-size:17px;line-height:1.7}.recipe-detail-video video{border-radius:var(--radius-lg);background:var(--media-bg);width:100%}.recipe-nutrition{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);padding:20px 24px}.recipe-nutrition h2{font-family:var(--font-display);margin:0 0 14px;font-size:18px;font-weight:700}.nutrition-list{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px;margin:0;display:grid}.nutrition-list dt{text-transform:uppercase;letter-spacing:.4px;color:var(--text-tertiary);margin-bottom:2px;font-size:11px;font-weight:600}.nutrition-list dd{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:17px;font-weight:600}.recipe-ingredients h2,.recipe-steps h2{font-family:var(--font-display);margin:0 0 16px;font-size:22px;font-weight:700}.ingredients-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.ingredients-list li{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 20px;font-size:15px;display:flex}.ingredients-list li:last-child{border-bottom:none}.ingredient-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ingredient-name{color:var(--text);font-weight:500}.ingredient-notes,.ingredient-note{color:var(--text-secondary);font-size:13px;font-style:italic}.ingredient-qty{color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:14px}.step-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.step{grid-template-columns:40px 1fr;gap:0 20px;padding:0 0 32px;display:grid;position:relative}.step:last-child{padding-bottom:0}.step:not(:last-child):before{content:"";background:var(--border-light);width:2px;position:absolute;top:40px;bottom:0;left:19px}.step-number{background:var(--primary);width:40px;height:40px;color:var(--text-on-primary);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:relative}.step-content{padding-top:8px}.step-body{color:var(--text-secondary);margin:0 0 12px;font-size:16px;line-height:1.7}.step-duration{color:var(--text-tertiary);background:var(--bg);border-radius:999px;padding:2px 10px;font-size:13px;display:inline-block}.upgrade-prompt{background:var(--surface);border:2px solid var(--primary-mid);border-radius:var(--radius-lg);text-align:center;padding:32px 28px}.upgrade-prompt h2{font-family:var(--font-display);margin:0 0 10px;font-size:22px;font-weight:700}.upgrade-prompt p{color:var(--text-secondary);margin:0 0 20px;font-size:15px;line-height:1.6}.upgrade-btn{background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;padding:10px 24px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.upgrade-btn:hover{background:var(--primary-dark);color:var(--text-on-primary);text-decoration:none}.learning-track-badge{background:var(--success-light);color:var(--success);letter-spacing:.2px;border-radius:999px;align-items:center;gap:6px;margin-top:8px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.learning-track-badge:before{content:"🎓";font-size:13px}.recipe-detail-loading{padding:1rem}.recipe-detail-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--border) 50%, var(--border-light) 75%);border-radius:var(--radius);background-size:200% 100%;width:100%;height:400px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recipe-not-found{text-align:center;padding:3rem 1rem}.recipe-not-found h1{font-family:var(--font-display);margin-bottom:.5rem;font-size:1.5rem}.recipe-not-found a{color:var(--primary);margin-top:1rem;font-weight:600;text-decoration:none;display:inline-block}.error-message{background:var(--danger-light);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);padding:1rem 1.25rem;font-size:.95rem}.recipe-grid,.recipe-grid-loading{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;padding:1rem 0;display:grid}.recipe-card-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--border) 50%, var(--border-light) 75%);border-radius:var(--radius);background-size:200% 100%;height:320px;animation:1.4s infinite skeleton-shimmer}.recipe-grid-empty{text-align:center;color:var(--text-secondary);padding:3rem 1rem}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow .2s,transform .2s;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.recipe-card-link{color:inherit;text-decoration:none;display:block}.recipe-card-image{aspect-ratio:16/9;background:var(--border-light);overflow:hidden}.recipe-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.recipe-card:hover .recipe-card-image img{transform:scale(1.03)}.recipe-card-body{padding:1rem}.recipe-card-badges{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.recipe-card-title{margin:0 0 .4rem;font-size:1.05rem;font-weight:700;line-height:1.3}.recipe-card-description{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .75rem;font-size:.875rem;display:-webkit-box;overflow:hidden}.recipe-card-meta{color:var(--text-secondary);flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.recipe-card-stats{color:var(--text);font-size:.85rem;font-weight:600}.recipe-tier-badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;font-size:.7rem;font-weight:700}.recipe-tier-basic{background:var(--badge-basic-bg);color:var(--badge-basic)}.recipe-tier-premium{background:var(--badge-unlimited-bg);color:var(--badge-unlimited)}.recipe-gated-badge{color:var(--text-secondary);font-size:.78rem}.recipe-difficulty,.recipe-cook-time,.recipe-cuisine,.recipe-servings,.recipe-rating{font-size:.8rem}.pricing-page{max-width:1100px;margin:0 auto;padding:48px 24px}.pricing-header{text-align:center;margin-bottom:36px}.pricing-header h1{font-family:var(--font-display);margin-bottom:8px;font-size:clamp(32px,4vw,44px);font-weight:700}.pricing-subtitle{color:var(--text-secondary);font-size:16px}.pricing-toggle{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:4px;margin:0 auto 32px;padding:4px;display:inline-flex}.pricing-toggle__btn{cursor:pointer;font-family:var(--font);color:var(--text-secondary);background:0 0;border:none;border-radius:999px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .15s}.pricing-toggle__btn--active{background:var(--primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}.pricing-toggle__save-label{opacity:.85;margin-left:4px;font-size:11px}.pricing-plans{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:48px;display:grid}.pricing-comparison{max-width:900px;margin:0 auto}.pricing-comparison h2{font-family:var(--font-display);text-align:center;margin-bottom:20px;font-size:24px}.pricing-page>.pricing-toggle{display:inline-flex}.pricing-page{text-align:center}.pricing-page .pricing-plans,.pricing-page .pricing-comparison{text-align:left}@media (max-width:640px){.recipe-detail-page{padding:20px 16px 48px}.recipe-detail-header h1{font-size:24px}.recipe-detail-actions{flex-direction:column;align-items:stretch}.recipe-detail-actions>*{text-align:center;width:100%}.nutrition-list{grid-template-columns:repeat(2,1fr)}.step{grid-template-columns:32px 1fr;gap:0 14px;padding-bottom:24px}.step:not(:last-child):before{top:32px;left:15px}.step-number{width:32px;height:32px;font-size:13px}.recipe-grid,.recipe-grid-loading{grid-template-columns:1fr}.upgrade-prompt{padding:20px}.ingredients-list li{padding:12px 16px}}@media (max-width:768px){.nav-links{display:none}.section{padding:48px 0}.hero{padding:48px 0 40px}.pricing-grid,.pricing-plans{grid-template-columns:1fr}}.re-shell{max-width:1080px;margin:0 auto;padding:32px 24px 120px}.re-header{margin-bottom:28px}.re-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--primary);margin:0 0 8px;font-size:12px;font-weight:600}.re-shell h1{font-family:var(--font-display);letter-spacing:-.3px;color:var(--text);margin:0 0 8px;font-size:clamp(28px,4vw,40px);line-height:1.15}.re-sub{color:var(--text-secondary);margin:0;font-size:16px}.re-grid{grid-template-columns:minmax(0,1fr) 372px;align-items:start;gap:28px;display:grid}.re-main{flex-direction:column;gap:24px;min-width:0;display:flex}.re-side{position:sticky;top:24px}.re-alert{grid-column:1/-1}.re-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px 26px}.re-card-head{align-items:center;gap:10px;margin-bottom:18px;display:flex}.re-card-head h2{font-family:var(--font-display);color:var(--text);margin:0;font-size:22px;font-weight:700}.re-count{color:var(--text-secondary);background:var(--bg);border:1px solid var(--border-light);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}.re-list{flex-direction:column;gap:6px;display:flex}.re-ing-row{border-radius:var(--radius);border:1px solid #0000;grid-template-columns:20px minmax(0,1fr) 80px 104px 34px;align-items:center;gap:10px;padding:7px 10px;transition:border-color .15s,background .15s;display:grid}.re-list .re-ing-row:hover{border-color:var(--border);background:var(--bg)}.re-ing-head{padding:0 10px 4px}.re-ing-head:hover{background:0 0;border-color:#0000}.re-ing-head span{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-size:11px;font-weight:600}.re-ing-row input{border-radius:var(--radius-sm);min-width:0;margin:0;padding:9px 12px;font-size:14px}.re-ing-name{font-weight:500}.re-grip{color:var(--text-tertiary);text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;font-size:14px;line-height:1}.re-steps{margin:0;padding:0;list-style:none}.re-step{grid-template-columns:40px 1fr;gap:0 20px;padding:0 0 22px;display:grid;position:relative}.re-step:last-child{padding-bottom:0}.re-step:not(:last-child):before{content:"";background:var(--border-light);width:2px;position:absolute;top:44px;bottom:8px;left:19px}.re-step-num{background:var(--primary);width:40px;height:40px;color:var(--text-on-primary);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:relative}.re-step-body{flex-direction:column;gap:8px;padding-top:2px;display:flex}.re-step-input{resize:vertical;width:100%;min-height:52px;margin:0;padding:10px 14px;font-size:15px;line-height:1.6}.re-step-actions{gap:6px;display:flex}.re-icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:14px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.re-icon-btn:hover{background:var(--bg);color:var(--text);border-color:var(--border)}.re-icon-btn:disabled{opacity:.3;cursor:not-allowed}.re-icon-btn.re-danger:hover{background:var(--danger-light);color:var(--danger);border-color:#0000}.re-add{width:100%;color:var(--text-secondary);border:1.5px dashed var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:11px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s,background .15s;display:flex}.re-add:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.re-add span{font-size:16px;line-height:1}.re-side .field{margin-bottom:16px}.re-side .field:last-child{margin-bottom:0}.re-field-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.re-field-grid .field{margin-bottom:0}.re-actionbar{background:linear-gradient(to top, var(--bg) 72%, transparent);grid-column:1/-1;justify-content:flex-end;gap:12px;margin-top:4px;padding:18px 0 6px;display:flex;position:sticky;bottom:0}@media (max-width:880px){.re-grid{grid-template-columns:1fr}.re-side{position:static}.re-shell{padding:24px 16px 110px}}.recipe-edit-page{max-width:820px;margin:0 auto;padding:32px 24px 120px}.recipe-edit-page>.error-message.server-error{margin-bottom:16px}.recipe-detail-title-input{font-family:var(--font-display);letter-spacing:-.3px;border-radius:var(--radius-sm);width:100%;color:var(--text);background:0 0;border:1px dashed #0000;margin:0 0 14px;padding:4px 10px;font-size:clamp(30px,4.5vw,44px);font-weight:700;line-height:1.15}.recipe-detail-title-input:hover{border-color:var(--border);background:var(--surface)}.recipe-detail-title-input:focus{border-color:var(--primary);background:var(--surface);border-style:solid;outline:none}.recipe-detail-description-input{resize:none;field-sizing:content;border-color:#0000;border-left:3px solid var(--primary-mid);background:0 0;border-radius:0;width:100%;min-height:80px;font-family:inherit}.recipe-detail-description-input:hover{background:var(--surface)}.recipe-detail-description-input:focus{background:var(--surface);outline:none}.recipe-detail.is-editing .recipe-detail-meta .meta-edit{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;display:inline-flex}.recipe-detail.is-editing .recipe-detail-meta .meta-edit input,.recipe-detail.is-editing .recipe-detail-meta .meta-edit select{color:var(--text);background:0 0;border:none;width:auto;min-width:60px;padding:2px 0;font-size:13px;font-weight:500}.recipe-detail.is-editing .recipe-detail-meta .meta-edit input[type=number]{text-align:right;width:50px}.recipe-detail.is-editing .recipe-detail-meta .meta-edit:focus-within{border-color:var(--primary);background:var(--surface)}.recipe-detail.is-editing .ingredients-list li.ingredient-edit-row{grid-template-columns:24px 1fr 160px auto;align-items:center;gap:12px;padding:10px 12px 10px 8px;display:grid}.row-grip{width:24px;height:32px;color:var(--text-tertiary);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);touch-action:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:inline-flex}.row-grip:hover{color:var(--text);background:var(--bg)}.row-grip:active{cursor:grabbing}.row-grip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.recipe-detail.is-editing .ingredients-list li.is-dragging,.recipe-detail.is-editing .step.is-dragging{opacity:.55;background:var(--primary-light)}.recipe-detail.is-editing .ingredient-main{gap:4px}.recipe-detail.is-editing .ingredient-main input.ingredient-name{border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;width:100%;padding:6px 10px;font-size:15px;font-weight:500}.recipe-detail.is-editing .ingredient-main input.ingredient-name:hover{border-color:var(--border);background:var(--bg)}.recipe-detail.is-editing .ingredient-main input.ingredient-name:focus{border-color:var(--primary);background:var(--bg);outline:none}.recipe-detail.is-editing .ingredient-main input.ingredient-notes{color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;width:100%;padding:4px 10px;font-size:13px;font-style:italic}.recipe-detail.is-editing .ingredient-main input.ingredient-notes:hover{border-color:var(--border);background:var(--bg)}.recipe-detail.is-editing .ingredient-main input.ingredient-notes:focus{border-color:var(--primary);background:var(--bg);outline:none}.ingredient-qty-edit{grid-template-columns:60px 80px;gap:6px;display:grid}.ingredient-qty-edit input{border:1px solid var(--border-light);border-radius:var(--radius-sm);text-align:right;font-variant-numeric:tabular-nums;background:0 0;padding:6px 8px;font-size:14px}.ingredient-qty-edit input:focus{border-color:var(--primary);outline:none}.recipe-detail.is-editing .step{grid-template-columns:24px 40px 1fr 32px;align-items:start;gap:8px 16px;padding-bottom:24px}.recipe-detail.is-editing .step:not(:last-child):before{left:43px}.recipe-detail.is-editing .step .step-grip{margin-top:4px}.recipe-detail.is-editing .step .step-remove{justify-self:end;margin-top:4px}.recipe-detail.is-editing .step-body-input{width:100%;color:var(--text);resize:none;field-sizing:content;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;min-height:64px;margin:0 0 8px;padding:8px 12px;font-family:inherit;font-size:16px;line-height:1.7}.recipe-detail.is-editing .step-body-input:hover{border-color:var(--border);background:var(--surface)}.recipe-detail.is-editing .step-body-input:focus{border-color:var(--primary);background:var(--surface);outline:none}.step-duration-edit{border:1px solid var(--border);background:var(--bg);color:var(--text-tertiary);border-radius:999px;align-items:center;gap:4px;margin-top:6px;padding:2px 10px;font-size:13px;display:inline-flex}.step-duration-edit input{text-align:right;font-variant-numeric:tabular-nums;width:44px;color:var(--text);background:0 0;border:none;padding:2px 0;font-size:13px}.step-duration-edit input:focus{outline:none}.step-duration-edit:focus-within{border-color:var(--primary);background:var(--surface)}.row-actions{gap:4px;display:inline-flex}.row-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:13px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.row-icon-btn:hover{background:var(--bg);color:var(--text);border-color:var(--border)}.row-icon-btn:disabled{opacity:.3;cursor:not-allowed}.row-icon-btn.row-danger:hover{background:var(--danger-light);color:var(--danger);border-color:#0000}.recipe-detail.is-editing .ingredients-list li.add-row{background:var(--bg);padding:0}.add-row-btn{width:100%;color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;display:inline-flex}.add-row-btn:hover{background:var(--primary-light);color:var(--primary-dark)}.add-row-btn span{font-size:16px;line-height:1}.add-step-btn{border:1px dashed var(--border);border-radius:var(--radius);margin-top:8px;padding:14px 20px}.add-step-btn:hover{border-color:var(--primary);background:var(--primary-light)}.recipe-detail.is-editing .recipe-detail-actions{background:linear-gradient(to top, var(--bg) 75%, transparent);z-index:5;justify-content:flex-end;padding:12px 0;position:sticky;bottom:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:720px){.recipe-detail.is-editing .ingredients-list li.ingredient-edit-row{grid-template-columns:24px 1fr auto}.ingredient-qty-edit{grid-column:2/3;grid-template-columns:1fr 1fr}}.groups-page{padding:2rem 0 4rem}.groups-intro{color:var(--text-secondary);margin-bottom:1.5rem}.groups-section{margin-top:2rem}.groups-section h2{margin-bottom:.75rem;font-size:1.15rem}.groups-list,.groups-invite-list,.groups-member-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.groups-list-item,.groups-invite-item,.groups-member-item{border:1px solid var(--border);border-radius:var(--radius,10px);background:var(--surface);padding:.75rem 1rem}.groups-invite-item,.groups-member-item{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.groups-list-link{color:var(--text);align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:flex}.groups-list-desc{color:var(--text-secondary);margin:.35rem 0 0;font-size:.9rem}.groups-member-name{font-family:var(--font-mono,monospace);text-overflow:ellipsis;flex:1;font-size:.85rem;overflow:hidden}.groups-role-badge{background:var(--bg);border:1px solid var(--border);letter-spacing:.03em;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.groups-invite-actions{gap:.5rem;display:flex}.groups-create-form,.groups-invite-form{flex-direction:column;gap:.75rem;max-width:32rem;display:flex}.groups-manage-actions{gap:.75rem;display:flex}.ownership-panel{background:0 0;border:none;margin:0 0 4px;padding:0}.ownership-panel--compact .field{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.ownership-panel--compact .field label{color:var(--text-secondary);white-space:nowrap;min-width:0;margin:0;font-size:13px}.ownership-panel--compact .field select{flex:1;min-width:160px;max-width:280px;height:auto;padding:5px 8px;font-size:14px}.ownership-panel--compact>.btn{padding:5px 12px;font-size:13px}.recipe-media-strip{border-bottom:1px solid var(--border-light);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px;padding:10px 0 14px;display:flex}.media-upload-input{display:none}.media-upload-item{align-items:center;gap:6px;display:inline-flex}.media-upload-item .field-hint{margin:0}.modal-backdrop{background:var(--overlay);z-index:var(--z-modal);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:calc(100vh - 48px);overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:24px 24px 0;display:flex}.modal-title{font-size:20px;font-weight:600}.modal-close{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:20px}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:20px 24px 24px}.field-error{color:var(--danger);margin-top:4px;font-size:13px;display:block}
