:root{--cream:#f6f0e8;--cream-strong:#efe3d5;--navy:#1f3550;--navy-soft:#2f4967;--sage:#6f8a70;--sage-soft:#dce6dc;--taupe:#9a7f6b;--rose:#c58e97;--ink:#2f2a26;--muted:#6f665f;--line:#dbcfc3;--white:#fffdfa;--shadow:0 18px 40px #1f355014;--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--sans:Inter, "Segoe UI", Roboto, Arial, sans-serif;--serif:"Georgia", "Times New Roman", serif;font-family:var(--sans);color:var(--ink);background:linear-gradient(180deg, #fbf7f2 0%, var(--cream) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:linear-gradient(180deg, #fbf7f2 0%, var(--cream) 100%);min-width:320px;color:var(--ink);margin:0}a{color:inherit}button,input{font:inherit}img{max-width:100%;display:block}.site-shell{min-height:100vh;color:var(--ink)}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#fffdfae0;flex-direction:column;gap:1rem;padding:1.25rem 1rem 1rem;display:flex;position:sticky;top:0}.brand-block{flex-direction:column;gap:.2rem;display:flex}.eyebrow,.section-kicker,.card-label,.sidebar-label,.panel-title,.auth-chip-label{text-transform:uppercase;letter-spacing:.12em;color:var(--taupe);margin:0;font-size:.78rem;font-weight:700}.brand-mark{font-family:var(--serif);color:var(--navy);font-size:clamp(1.7rem,5vw,2.6rem);font-weight:700;text-decoration:none}.tagline{max-width:34rem;color:var(--muted);margin:0}.topbar-row{flex-direction:column;gap:.9rem;display:flex}.topnav,.sidebar-nav,.mock-role-grid{flex-wrap:wrap;gap:.65rem;display:flex}.topnav a,.sidebar-nav a,.mock-role-button,.hub-subnav-link{color:var(--navy-soft);background:#dce6dc8c;border:1px solid #0000;border-radius:999px;padding:.72rem .95rem;font-weight:600;text-decoration:none}.topnav a.active,.sidebar-nav a.active,.topnav a:hover,.sidebar-nav a:hover,.mock-role-button:hover,.mock-role-button.selected,.hub-subnav-link.active,.hub-subnav-link:hover{background:var(--navy);color:var(--white)}.sidebar-nav a{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sidebar-nav a small{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.layout{grid-template-columns:1fr;gap:1.5rem;width:min(1200px,100% - 2rem);margin:1.5rem auto 2rem;display:grid}.sidebar{flex-direction:column;gap:1rem;display:flex}.sidebar-card,.info-card,.hero-card,.split-card,.auth-chip{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fffdfaeb;border:1px solid #dbcfc3e6}.sidebar-card{padding:1rem 1.1rem}.sidebar-note,.fine-print,.hero-text,.page-heading p,.info-card p,.login-placeholder label,.hero-panel li,.route-access-note,.sidebar-empty{color:var(--muted)}.sidebar-nav{gap:.75rem}.sidebar-empty{border-radius:var(--radius-md);border:1px dashed var(--line);background:#fffdfab3;padding:1rem 1.1rem}.content{min-width:0}.page{flex-direction:column;gap:1.25rem;display:flex}.page-section{flex-direction:column;gap:.9rem;display:flex}.public-homepage-shell{background:linear-gradient(#f8f1e7 0%,#f5ede3 55%,#f1e6d9 100%);min-height:100vh}.public-homepage-header{color:var(--white);background:linear-gradient(#1e334b 0%,#273f57 100%);border-bottom:1px solid #ffffff1a;flex-direction:column;gap:1rem;padding:1.1rem 1rem;display:flex}.public-homepage-brandline{align-items:center;gap:.9rem;display:flex}.public-homepage-header-logo{flex:none;width:82px;height:auto}.public-homepage-header h1{font-family:var(--serif);color:var(--white);margin:.2rem 0 0;font-size:clamp(1.7rem,4vw,2.5rem)}.public-homepage-header .section-kicker{color:#efe3d5e0}.public-homepage-nav{flex-wrap:wrap;gap:.7rem;display:flex}.public-homepage-nav a{color:var(--white);background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;padding:.68rem .9rem;font-weight:600;text-decoration:none}.public-homepage-nav a:hover,.public-homepage-nav a.active{background:#ffffff2e}.public-homepage-main{flex-direction:column;gap:1.3rem;width:min(1240px,100% - 2rem);margin:0 auto;padding:1.4rem 0 1.8rem;display:flex}.public-hero-card,.public-family-scene,.public-medallion-card,.public-extended-family-card,.public-feature-card{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fffbf6f5;border:1px solid #d6cabef2}.public-hero-card{gap:1rem;padding:1.15rem;display:grid}.public-hero-copy{flex-direction:column;gap:.9rem;display:flex}.public-homepage-hero-logo{width:min(100%,300px);height:auto}.public-homepage-tagline{font-family:var(--serif);color:#7b5f68;margin:0;font-size:clamp(1.25rem,3vw,1.75rem)}.public-homepage-intro{max-width:38rem;color:var(--muted);margin:0}.public-homepage-actions{flex-wrap:wrap;gap:.75rem;display:flex}.public-hero-visual{gap:1rem;display:grid}.public-family-scene{background:linear-gradient(#1f3550f7,#2e4559f5);gap:.9rem;padding:1rem;display:grid}.public-family-scene h2,.public-family-scene p,.public-family-scene .card-label{color:var(--white)}.public-moon-area{border-radius:var(--radius-md);background:radial-gradient(circle at 26% 18%,#ffffff2b,#0000 30%),linear-gradient(#1b2b3f 0%,#101b28 100%);min-height:240px;position:relative;overflow:hidden}.public-moon-disc{background:radial-gradient(circle at 35% 35%,#f6eee2 0%,#dcc7ae 58%,#b59d89 100%);border-radius:50%;width:136px;height:136px;position:absolute;top:1rem;left:1.2rem;box-shadow:0 0 42px #f7efe15c}.public-family-row{align-items:flex-end;gap:.55rem;display:flex;position:absolute;bottom:1rem}.public-family-row span{background:#0b1119fa;border-radius:999px 999px 10px 10px;width:28px;display:block}.public-family-row-left{left:1.2rem}.public-family-row-left span:first-child{height:68px}.public-family-row-left span:nth-child(2){height:88px}.public-family-row-left span:nth-child(3){height:74px}.public-family-row-center{left:50%;transform:translate(-50%)}.public-family-row-center span:first-child,.public-family-row-center span:nth-child(2){width:34px;height:104px}.public-family-row-right{right:1.2rem}.public-family-row-right span:first-child{height:72px}.public-family-row-right span:nth-child(2){height:82px}.public-medallion-panel{flex-direction:column;gap:.9rem;display:flex}.public-medallion-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.public-medallion-card{color:var(--navy);align-items:center;gap:.8rem;padding:.85rem .95rem;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.public-medallion-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1f355024}.public-medallion-avatar{width:48px;height:48px;font-family:var(--serif);color:var(--white);background:linear-gradient(#c6a5adf5,#809171eb);border:2px solid #ffffffd9;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex;box-shadow:inset 0 0 0 3px #fffbf673}.public-medallion-text{flex-direction:column;gap:.16rem;display:flex}.public-medallion-text small{color:var(--taupe);text-transform:uppercase;letter-spacing:.08em}.public-extended-family-card{background:linear-gradient(#efe3d5f2,#fffbf6fa);padding:1rem}.public-card-section{flex-direction:column;display:flex}.public-card-grid{gap:1rem;display:grid}.public-feature-card{color:var(--navy);background:linear-gradient(#fffbf6fa,#f1e6d9f2);flex-direction:column;gap:.45rem;padding:1.15rem;text-decoration:none;display:flex}.public-feature-card h2,.public-feature-card p{margin:0}.public-homepage-footer{color:#ffffffe6;background:linear-gradient(#1c3046 0%,#162638 100%);flex-direction:column;gap:.35rem;padding:1rem;display:flex}.public-homepage-footer p,.public-homepage-footer span{margin:0}.section-heading{flex-direction:column;gap:.35rem;display:flex}.section-heading h2{color:var(--navy);margin:0}.section-heading p{margin:0}.hero-card,.split-card{grid-template-columns:1fr;gap:1.25rem;padding:1.35rem;display:grid}.hero-copy h1,.page-heading h1,.split-card h1,.info-card h2,.auth-chip strong{color:var(--navy);margin:0}.hero-copy h1,.page-heading h1,.split-card h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.02}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.button{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;min-height:2.9rem;padding:.82rem 1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.button-primary{background:var(--navy);color:var(--white)}.button-secondary{background:var(--sage-soft);color:var(--navy)}.button-small{min-height:2.4rem;padding:.65rem .9rem}.button:disabled{opacity:.6;cursor:not-allowed}.hero-panel{border-radius:var(--radius-md);background:linear-gradient(#dce6dcb8,#efe3d5eb);padding:1.1rem}.hero-panel ul,.simple-list{margin:.9rem 0 0;padding-left:1.1rem}.card-grid{gap:1rem;display:grid}.card-grid-3,.card-grid-2{grid-template-columns:1fr}.info-card{padding:1.2rem}.info-card h2{margin-top:.2rem;font-size:1.35rem}.info-card-wide{min-height:12rem}.access-card{background:linear-gradient(#fffdfaf5,#efe3d5cc);border-style:dashed}.page-heading{flex-direction:column;gap:1rem;display:flex}.badge-stack{flex-wrap:wrap;gap:.6rem;display:flex}.hub-subnav{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fffdfae6;border:1px solid #dbcfc3e6;flex-direction:column;gap:.7rem;padding:1rem 1.1rem;display:flex}.hub-subnav-links{flex-wrap:wrap;gap:.6rem;display:flex}.compact-safety-card{gap:.6rem}.compact-list{margin-top:.4rem}.status-badge{color:var(--navy-soft);background:#c58e9724;border:1px solid #c58e973d;border-radius:999px;align-items:center;padding:.65rem .9rem;font-weight:700;display:inline-flex}.login-placeholder{border-radius:var(--radius-md);background:linear-gradient(#fffdfaf2,#efe3d5e6);gap:.9rem;padding:1.1rem;display:grid}.login-placeholder label{gap:.35rem;font-weight:600;display:grid}.login-placeholder input{border-radius:var(--radius-sm);border:1px solid var(--line);background:#fffc;min-height:2.9rem;padding:.75rem .9rem}.mock-auth-panel{gap:.75rem;padding-top:.35rem;display:grid}.mock-auth-title{color:var(--navy);margin:0;font-weight:700}.mock-role-button{cursor:pointer}.auth-chip{flex-direction:column;gap:.75rem;padding:.9rem 1rem;display:flex}.lower-grid{align-items:start}.family-feature-grid{gap:1rem;display:grid}.cookbook-callout{flex-direction:column;gap:1rem;display:flex}.text-link{color:var(--navy);font-weight:700}.cookbook-controls{gap:1rem;display:grid}.cookbook-search label,.cookbook-filters label{gap:.35rem;font-weight:600;display:grid}.cookbook-search input,.cookbook-filters select{border-radius:var(--radius-sm);border:1px solid var(--line);background:#fffc;min-height:2.9rem;padding:.75rem .9rem}.cookbook-filters,.cookbook-layout{gap:1rem;display:grid}.pinned-posts-grid{gap:1rem;margin-bottom:1rem;display:grid}.cookbook-list{gap:1rem;display:grid}.recipe-card{text-align:left;cursor:pointer;width:100%}.recipe-card.selected{border-color:#1f355066;box-shadow:0 0 0 2px #1f35501f}.recipe-meta{font-weight:600}.tag-row{flex-wrap:wrap;gap:.5rem;margin-top:.9rem;display:flex}.inline-tag{color:var(--navy-soft);background:#dce6dcb3;border-radius:999px;padding:.35rem .65rem;font-size:.85rem;font-weight:700;display:inline-flex}.cookbook-detail{gap:1rem;display:grid}.cookbook-detail-header{flex-direction:column;gap:1rem;display:flex}.recipe-meta-grid,.detail-columns{gap:1rem;display:grid}.nested-panel{border-radius:var(--radius-md);background:#efe3d580;padding:1rem}.ordered-list{padding-left:1.25rem}.partition-card-link{text-decoration:none}.shopping-checklist{gap:.85rem;display:grid}.shopping-item{border-radius:var(--radius-md);border:1px solid var(--line);background:#ffffffb3;grid-template-columns:auto 1fr;align-items:flex-start;gap:.8rem;padding:.9rem 1rem;display:grid}.shopping-item input{margin-top:.2rem}.shopping-item p{margin:.3rem 0 0}.shopping-item-checked{opacity:.75}.shopping-item-checked strong{text-decoration:line-through}.print-note{border-top:1px dashed var(--line);padding-top:1rem}@media (width>=760px){.topbar{padding:1.5rem 1.5rem 1.15rem}.hero-card,.split-card,.card-grid-2,.cookbook-filters,.detail-columns,.family-feature-grid,.pinned-posts-grid,.public-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-homepage-header{flex-direction:row;justify-content:space-between;align-items:center;padding:1.1rem 1.4rem}.public-hero-card{grid-template-columns:1.05fr 1fr;align-items:start;padding:1.35rem}.public-medallion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.page-heading,.auth-chip,.topbar-row{flex-direction:row;justify-content:space-between;align-items:flex-start}.auth-chip{align-items:center}.cookbook-callout,.cookbook-detail-header{flex-direction:row;justify-content:space-between;align-items:flex-start}}@media (width>=960px){.cookbook-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start}.recipe-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.public-medallion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1024px){.layout{grid-template-columns:290px minmax(0,1fr);align-items:start}.sidebar{position:sticky;top:9.4rem}}
