:root{--hearth-cream: #fdf8f1;--hearth-sage: #6b705c;--hearth-clay: #a5a58d;--hearth-warm-black: #2d2d2a;--hearth-accent: #bc6c25;--hearth-soft: #dda15e;--hearth-border: rgba(165, 165, 141, .24);--hearth-paper: rgba(255, 255, 255, .72);--hearth-shadow: 0 30px 60px -20px rgba(107, 112, 92, .22);--control-height: 48px;color:var(--hearth-warm-black);background:var(--hearth-cream);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{scroll-behavior:smooth}body{min-width:320px;overflow-x:hidden;background-color:var(--hearth-cream);background-image:radial-gradient(at 0% 0%,hsla(38,59%,92%,1) 0,transparent 50%),radial-gradient(at 50% 0%,hsla(24,46%,90%,1) 0,transparent 50%),radial-gradient(at 100% 0%,hsla(74,11%,85%,1) 0,transparent 50%)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.65}input,textarea,select{width:100%;border:2px solid rgba(165,165,141,.2);border-radius:18px;background:#ffffff8c;color:var(--hearth-warm-black);min-height:var(--control-height);padding:0 16px;outline:none;font-weight:650;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}textarea{min-height:104px;padding:14px 16px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--hearth-accent);background:#fff;box-shadow:0 0 0 4px #bc6c251a}input::placeholder,textarea::placeholder{color:#a5a58db3}h1,h2,p{margin:0}h1{font-size:52px;line-height:.98;letter-spacing:0;font-weight:900}h2{font-size:28px;line-height:1.1;letter-spacing:0;font-weight:850}::selection{background:var(--hearth-soft);color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--hearth-cream)}::-webkit-scrollbar-thumb{background:var(--hearth-clay);border-radius:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.handwritten{font-family:Covered By Your Grace,cursive}.grain-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.app-shell,.auth-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:142px 0 64px;flex:1}.topbar,.auth-topbar{position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px max(24px,calc((100vw - 1180px)/2));pointer-events:none}.brand,.auth-back-link,.nav-pills,.kitchen-chip{pointer-events:auto}.brand{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--hearth-warm-black);padding:0;font-size:26px;font-weight:900;letter-spacing:0}.brand.large{font-size:27px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:var(--hearth-accent);color:#fff;box-shadow:0 10px 22px #bc6c253d;transform:rotate(3deg);transition:transform .25s ease}.brand:hover .brand-mark{transform:rotate(0)}.brand-mark img{width:30px;height:30px;object-fit:contain}.nav-pills{display:flex;align-items:center;gap:24px;padding:12px 28px;border:1px solid rgba(255,255,255,.85);border-radius:999px;background:#ffffff9e;box-shadow:0 8px 24px #6b705c14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-pill{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--hearth-sage);padding:0;font-size:11px;font-weight:850;letter-spacing:1px;text-transform:uppercase;transition:color .2s ease}.nav-pill:hover,.nav-pill.is-active{color:var(--hearth-accent)}.nav-icon{display:none}.kitchen-chip{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;color:var(--hearth-warm-black);font-size:12px;font-weight:850}.avatar,.profile-avatar{display:grid;place-items:center;border-radius:999px;background:var(--hearth-sage);color:#fff;font-weight:900}.avatar{width:36px;height:36px;border:2px solid #fff;box-shadow:0 5px 12px #6b705c29;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.auth-back-link{border:0;background:transparent;padding:0;color:var(--hearth-sage);font-size:11px;font-weight:900;letter-spacing:1.2px;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.auth-back-link:hover{color:var(--hearth-accent)}.auth-page{position:relative;flex:1;width:min(1060px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:1fr minmax(340px,480px);gap:48px;align-items:center;padding:120px 0 56px}.auth-glow{position:absolute;border-radius:999px;filter:blur(48px);pointer-events:none}.auth-glow-left{top:24%;left:-160px;width:260px;height:260px;background:#dda15e24}.auth-glow-right{right:-180px;bottom:18%;width:320px;height:320px;background:#bc6c251f}.auth-hero{display:flex;flex-direction:column;justify-content:center;gap:46px}.auth-copy{display:grid;gap:18px;animation:fade-in-up .75s cubic-bezier(.22,1,.36,1) both}.auth-note{color:var(--hearth-accent);font-size:44px;line-height:1;transform:rotate(-1deg)}.auth-copy h1{max-width:620px;font-size:62px}.auth-copy p:not(.auth-note){max-width:430px;color:var(--hearth-sage);font-size:19px;line-height:1.62}.household-strip{display:flex;align-items:center;gap:18px;color:var(--hearth-sage);font-size:14px;font-weight:750}.avatar-stack{display:flex}.avatar-stack span{display:grid;width:50px;height:50px;margin-left:-12px;place-items:center;border:4px solid var(--hearth-cream);border-radius:999px;color:#fff;font-weight:900}.avatar-stack span:first-child{margin-left:0;background:var(--hearth-accent)}.avatar-stack span:nth-child(2){background:var(--hearth-sage)}.avatar-stack span:nth-child(3){background:var(--hearth-soft)}.auth-card,.soft-panel,.meal-card,.recipe-card,.profile-card,.hero-surface,.editor-panel{border:1px solid rgba(255,255,255,.86);background:var(--hearth-paper);box-shadow:var(--hearth-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.auth-card{position:relative;display:grid;gap:22px;overflow:hidden;border-radius:48px;padding:44px;animation:fade-in-up .75s .08s cubic-bezier(.22,1,.36,1) both}.paper-tag{position:absolute;top:-3px;right:-34px;padding:7px 42px;border:1px dashed var(--hearth-soft);background:#fefae0;color:var(--hearth-accent);box-shadow:0 8px 18px #6b705c1f;font-size:22px;transform:rotate(12deg)}.auth-card-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:4px}.auth-card-heading p{margin-top:6px;color:var(--hearth-sage);font-size:14px;line-height:1.5}.landing-features{display:grid;gap:16px;margin:4px 0 6px;padding:0;list-style:none}.landing-feature{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}.landing-feature-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#bc6c251f;color:var(--hearth-accent)}.landing-feature strong{display:block;color:var(--hearth-warm-black);font-size:15px}.landing-feature p{margin-top:2px;color:var(--hearth-sage);font-size:13.5px;line-height:1.5}.form-stack{display:grid;gap:16px}.form-stack label{display:grid;gap:8px;color:var(--hearth-clay);font-size:11px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-message,.status-line{color:var(--hearth-accent);font-weight:850}.auth-divider{position:relative;display:grid;place-items:center;margin:4px 0;color:var(--hearth-clay);font-size:11px;font-weight:900;letter-spacing:1.1px;text-transform:uppercase}.auth-divider:before{content:"";position:absolute;left:0;right:0;height:1px;background:#a5a58d33}.auth-divider span{position:relative;padding:0 14px;background:#ffffff57}.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social-btn{min-height:52px;border:1px solid rgba(165,165,141,.22);border-radius:18px;background:#ffffff7a;color:var(--hearth-warm-black);font-weight:850;transition:transform .2s ease,background .2s ease}.social-btn:hover:not(:disabled){transform:translateY(-2px);background:#fff}.auth-switch{text-align:center;color:var(--hearth-sage);font-size:14px}.auth-switch button{border:0;background:transparent;color:var(--hearth-accent);padding:0 0 0 6px;font-weight:850}.security-note{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--hearth-clay);font-size:10px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}.primary-button,.secondary-button,.danger-button,.text-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-height);border-radius:18px;font-weight:900;text-decoration:none;line-height:1;white-space:nowrap}.primary-button{min-height:var(--control-height);border:2px solid var(--hearth-accent);background:var(--hearth-accent);color:#fff;padding:0 18px;box-shadow:0 5px #8b4513;transform:translateY(0);transition:transform .18s cubic-bezier(.175,.885,.32,1.275),box-shadow .18s ease}.primary-button:active{transform:translateY(3px);box-shadow:0 2px #8b4513}.primary-button.compact,.secondary-button,.danger-button,.text-button{min-height:var(--control-height);padding:0 16px}.secondary-button{border:2px solid rgba(165,165,141,.2);background:#ffffff6b;color:var(--hearth-sage);box-shadow:0 5px #a5a58d61;transition:background .2s ease,border-color .2s ease,transform .18s cubic-bezier(.175,.885,.32,1.275),box-shadow .18s ease}.secondary-button:hover{border-color:#bc6c256b;background:#fff}.secondary-button:active{transform:translateY(3px);box-shadow:0 2px #a5a58d7a}.danger-button{border:2px solid #c75252;background:#c75252;color:#fff;box-shadow:0 5px #8f3434;transition:transform .18s cubic-bezier(.175,.885,.32,1.275),box-shadow .18s ease}.danger-button:active{transform:translateY(3px);box-shadow:0 2px #8f3434}.text-button{border:0;background:transparent;color:var(--hearth-accent);justify-content:flex-start;padding:0}.square-button{width:var(--control-height);min-width:var(--control-height);padding:0}.page-grid,.page-stack{display:grid;gap:22px}.page-stack{margin-top:24px}.today-menu,.recipe-slider-section{display:grid;gap:16px}.recipe-slider{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.recipe-slider-item{flex:0 0 200px;scroll-snap-align:start;text-align:left}.page-stack.narrow{max-width:760px}.page-hero{display:grid;gap:12px}.page-hero h1{max-width:760px;font-size:64px}.page-hero p,.recipe-card p,.profile-card p{color:var(--hearth-sage);line-height:1.58}.kicker,.eyebrow{color:var(--hearth-accent);font-size:11px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}.eyebrow{color:var(--hearth-clay)}.soft-panel,.recipe-card,.profile-card{border-radius:32px;padding:20px}.home-stats-row{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,2fr) minmax(120px,.5fr);gap:16px;align-items:start}.date-card{display:grid;align-content:center;align-self:stretch;gap:3px;border:1px solid rgba(255,255,255,.9);border-radius:32px;background:#ffffffad;padding:12px 14px;box-shadow:0 12px 26px #6b705c1a}.date-card strong{font-size:22px}.date-card span:last-child{color:var(--hearth-sage);font-weight:850;font-size:12px}.progress-panel{display:grid;grid-template-columns:1fr auto;align-content:start;gap:16px;align-items:center}.progress-panel h2{margin-top:4px}.progress-track{grid-column:1 / -1;height:7px;overflow:hidden;border-radius:999px;background:#a5a58d29}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--hearth-accent)}.stat-card{display:grid;align-self:stretch;align-content:center;gap:10px}.stat-card div{display:grid;gap:3px}.stat-card div+div{padding-top:10px;border-top:1px solid rgba(165,165,141,.18)}.stat-card strong{font-size:22px}.stat-card span{color:var(--hearth-sage);font-weight:850;font-size:12px}.section-header,.planner-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.section-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.planner-page{display:grid;gap:34px}.hero-meta{display:flex;align-items:center;gap:14px;margin-bottom:12px}.week-badge{border-radius:999px;background:#bc6c251a;color:var(--hearth-accent);padding:7px 12px;font-size:11px;font-weight:900;letter-spacing:1.1px;text-transform:uppercase}.season-note{color:var(--hearth-clay);font-size:28px;line-height:1}.planner-hero h1{max-width:780px;font-size:60px}.planner-actions,.footer-button-row{display:flex;align-items:center;gap:14px}.date-button svg{color:var(--hearth-accent)}.weekly-list{position:relative;display:grid;gap:24px}.weekly-list:before{content:"";position:absolute;top:8px;bottom:8px;left:42px;width:1px;background:linear-gradient(to bottom,transparent,rgba(165,165,141,.28),transparent)}.day-row{position:relative;display:grid;grid-template-columns:132px 1fr;gap:26px;align-items:center;animation:fade-in-up .6s ease both}.day-row:nth-child(2){animation-delay:.04s}.day-row:nth-child(3){animation-delay:.08s}.day-row:nth-child(4){animation-delay:.12s}.day-row:nth-child(5){animation-delay:.16s}.day-row:nth-child(6){animation-delay:.2s}.day-row:nth-child(7){animation-delay:.24s}.day-badge{position:relative;z-index:1;display:grid;justify-items:end;gap:2px}.day-badge strong{color:var(--hearth-warm-black);font-size:34px;line-height:1;font-weight:900;transition:color .22s ease,transform .22s ease}.day-row:hover .day-badge strong{color:var(--hearth-accent);transform:scale(1.06)}.day-badge span{color:var(--hearth-clay);font-size:12px;font-weight:900;letter-spacing:1.1px;text-transform:uppercase}.meal-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;border-radius:40px;padding:24px;transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s ease}.day-row:hover .meal-card{transform:translateY(-4px);box-shadow:0 34px 70px -24px #6b705c42}.meal-slot{display:grid;min-height:132px;align-content:start;gap:16px;border:2px dashed rgba(165,165,141,.32);border-radius:28px;padding:20px;color:var(--hearth-sage);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.meal-slot.light.is-filled{border-color:transparent;background:#fff;box-shadow:0 8px 20px #6b705c14}.meal-slot.warm.is-filled{border-color:transparent;background:#fdf8f1db;box-shadow:0 8px 20px #6b705c14}.meal-slot:focus-within{border-color:var(--hearth-accent);background:#fff;box-shadow:0 0 0 4px #bc6c251a}.meal-slot-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--hearth-clay);font-size:10px;font-weight:950;letter-spacing:1.7px;text-transform:uppercase}.meal-slot.warm .meal-slot-label,.meal-slot.is-filled .meal-slot-label svg{color:var(--hearth-accent)}.meal-slot input{min-height:46px;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none;color:var(--hearth-warm-black);font-size:19px;line-height:1.2;font-weight:850}.meal-slot input:focus{background:transparent;box-shadow:none}.planner-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px}.planner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.recipes-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start}.recipe-books-menu{position:sticky;top:126px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;height:calc(100vh - 158px);min-height:620px;border:1px solid rgba(228,217,200,.9);border-radius:34px;background:#fff;box-shadow:0 18px 34px -28px #6b705c47;padding:16px}.recipe-books-menu .hero-surface{border:0;background:#fdf8f1b8;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:16px 16px 12px}.editor-panel{position:static;display:grid;gap:16px;border-radius:34px;padding:20px}.hero-surface{display:grid;gap:12px;border-radius:34px;padding:20px}.hero-surface h1{font-size:32px}.recipe-books-hero h1{font-size:30px}.hero-surface p:not(.eyebrow){margin-top:4px;color:var(--hearth-sage);font-size:14px;line-height:1.45;font-weight:550}.count-chip{justify-self:start;border:1px solid var(--hearth-border);border-radius:999px;background:#fdf8f1b8;color:var(--hearth-sage);padding:6px 12px;font-size:11px;font-weight:850;letter-spacing:.6px;text-transform:uppercase}.books-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--hearth-sage);font-size:12px;font-weight:850}.book-create-button{width:100%}.books-list{display:grid;align-content:start;gap:10px;min-height:0;overflow-y:auto;padding-right:4px}.book-menu-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%;border:1px solid rgba(228,217,200,.82);border-radius:22px;background:#fff;color:var(--hearth-warm-black);padding:15px;text-align:left;box-shadow:0 8px 18px #6b705c0b;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}.book-menu-item:hover,.book-menu-item.is-active{border-color:#bc6c2552;background:#fdf8f1b3;box-shadow:0 10px 20px #6b705c0f;transform:none}.book-menu-item>span{display:grid;gap:3px}.book-menu-eyebrow{color:var(--hearth-clay);font-size:10px;font-weight:950;letter-spacing:1.3px;text-transform:uppercase}.book-menu-item strong{font-size:15px;line-height:1.25}.book-menu-item em{border-radius:999px;background:#bc6c251a;color:var(--hearth-accent);padding:5px 9px;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#2d2d2a52;padding:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.book-editor-modal{display:grid;width:min(440px,100%);gap:18px;border:1px solid rgba(255,255,255,.9);border-radius:30px;background:#fff;box-shadow:0 30px 70px -24px #2d2d2a6b;padding:24px}.book-editor-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-close-button{width:36px;height:36px;border-radius:12px}.book-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.book-editor-actions button{flex:1}.book-editor-hint{color:var(--hearth-sage);font-size:13px;line-height:1.5}.confirm-modal{display:grid;width:min(400px,100%);gap:18px;border:1px solid rgba(255,255,255,.9);border-radius:30px;background:#fff;box-shadow:0 30px 70px -24px #2d2d2a6b;padding:24px}.confirm-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.confirm-modal-message{color:var(--hearth-sage);font-size:14px;line-height:1.5}.confirm-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-auto-rows:1fr;gap:12px}.compact-recipes{align-items:start}.recipe-card{display:grid;grid-template-rows:auto minmax(54px,auto) auto;gap:10px;height:100%;min-height:240px;padding:14px;border-radius:22px}.recipe-card-button{cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.recipe-card-button:hover,.recipe-card-button:focus-visible{border-color:#bc6c255c;box-shadow:0 22px 44px -18px #6b705c3d;outline:none;transform:translateY(-2px)}.recipe-cover{display:grid;aspect-ratio:16 / 9;place-items:center;overflow:hidden;border-radius:16px;background:#fdf8f1d1;color:var(--hearth-accent);font-size:26px}.recipe-cover img{width:100%;height:100%;object-fit:cover}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.recipe-card h2{display:-webkit-box;overflow:hidden;font-size:18px;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chip-row span{border:1px solid var(--hearth-border);border-radius:999px;background:#fdf8f1b8;color:var(--hearth-sage);padding:4px 8px;font-size:10px;font-weight:850;letter-spacing:.5px;text-transform:uppercase}.recipe-card .secondary-button{align-self:end;min-height:var(--control-height);border-radius:14px;padding:0 12px;font-size:13px}.recipe-editor-panel{margin-top:10px}.recipe-editor-page{width:min(820px,100%)}.full-page-editor{margin-top:0;padding:28px}.recipe-reader-page{display:grid;gap:22px;width:min(980px,100%);margin:0 auto}.reader-back-button{justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:42px;border:0;border-radius:999px;background:transparent;color:var(--hearth-accent);padding:0;font-weight:900}.reader-back-button svg{font-size:20px}.recipe-reader-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.recipe-reader-title{display:grid;gap:14px}.recipe-reader-title h1{max-width:760px}.recipe-reader-cover{overflow:hidden;border:1px solid rgba(255,255,255,.86);border-radius:34px;background:#ffffffb8;box-shadow:var(--hearth-shadow);aspect-ratio:16 / 7}.recipe-reader-cover img{width:100%;height:100%;object-fit:cover}.recipe-reader{display:grid;gap:18px}.recipe-reader-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.recipe-reader-note{color:var(--hearth-sage);line-height:1.6}.recipe-reader-meta{display:flex;flex-wrap:wrap;gap:8px}.recipe-reader-meta span{border:1px solid var(--hearth-border);border-radius:999px;background:#fdf8f1b8;color:var(--hearth-sage);padding:5px 10px;font-size:11px;font-weight:850;letter-spacing:.5px;text-transform:uppercase}.recipe-reader-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:18px}.recipe-reader-grid h3{margin:0 0 10px;color:var(--hearth-warm-black);font-size:15px;font-weight:900}.recipe-reader-grid ul,.recipe-reader-grid ol{display:grid;gap:8px;margin:0;padding-left:20px;color:var(--hearth-sage);line-height:1.5}.recipe-reader-grid p{color:var(--hearth-sage)}.wizard-progress{display:flex;align-items:center;gap:8px}.wizard-dot{width:10px;height:10px;border-radius:999px;background:#a5a58d47;transition:background .2s ease,transform .2s ease}.wizard-dot.is-active{background:var(--hearth-accent);transform:scale(1.2)}.wizard-dot.is-complete{background:var(--hearth-soft)}.choice-chip-row{display:flex;flex-wrap:wrap;gap:8px}.choice-chip{border:2px solid rgba(165,165,141,.2);border-radius:999px;background:#ffffff8c;color:var(--hearth-sage);padding:8px 16px;font-size:13px;font-weight:850;transition:border-color .2s ease,background .2s ease,color .2s ease}.choice-chip.is-active{border-color:var(--hearth-accent);background:var(--hearth-accent);color:#fff}.choice-chip.compact{padding:6px 12px;font-size:12px}.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.source-card{display:grid;gap:6px;border:2px solid rgba(165,165,141,.2);border-radius:22px;background:#ffffff8c;color:var(--hearth-warm-black);padding:16px;text-align:left;transition:border-color .2s ease,background .2s ease,transform .2s ease}.source-card svg{color:var(--hearth-accent);font-size:18px}.source-card strong{font-size:14px}.source-card span{color:var(--hearth-sage);font-size:12px;line-height:1.4}.source-card.is-active{border-color:var(--hearth-accent);background:#bc6c2514}.source-card.is-active svg{color:var(--hearth-accent)}.source-card:disabled{cursor:default;opacity:.55}.inline-hint{display:flex;align-items:flex-start;gap:8px;color:var(--hearth-sage);font-size:13px;line-height:1.5}.inline-hint svg{flex:0 0 auto;margin-top:2px;color:var(--hearth-accent)}.missing-badge-row{display:flex;flex-wrap:wrap;gap:8px}.missing-badge{border:1px solid #c75252;border-radius:999px;background:#c752521a;color:#c75252;padding:5px 10px;font-size:11px;font-weight:850}.book-chip-row{display:flex;flex-wrap:wrap;gap:8px}.book-chip{border:2px solid rgba(165,165,141,.2);border-radius:999px;background:#ffffff8c;color:var(--hearth-sage);padding:7px 14px;font-size:12px;font-weight:850}.book-chip.is-active{border-color:var(--hearth-accent);background:var(--hearth-accent);color:#fff}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.photo-tile{display:grid;gap:6px;overflow:hidden;border-radius:18px;background:#ffffff8c;padding:8px}.photo-tile img{width:100%;aspect-ratio:4 / 3;border-radius:12px;object-fit:cover}.photo-actions{display:flex;gap:6px}.photo-action{flex:1;border:1px solid rgba(165,165,141,.24);border-radius:10px;background:transparent;color:var(--hearth-sage);padding:5px 6px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.4px}.photo-action.is-active{border-color:var(--hearth-accent);background:var(--hearth-accent);color:#fff}.photo-empty{color:var(--hearth-sage);font-size:13px}.item-card{display:grid;gap:12px;border:1px solid rgba(228,217,200,.82);border-radius:20px;background:#ffffff8c;padding:16px}.item-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.item-card-header strong{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;color:var(--hearth-clay)}.item-remove-link{border:0;background:transparent;color:#c75252;font-size:12px;font-weight:850;padding:0}.add-item-button{border:2px dashed rgba(165,165,141,.3);border-radius:18px;background:transparent;color:var(--hearth-accent);min-height:var(--control-height);font-weight:900}.preview-card{display:grid;gap:12px}.preview-cover{overflow:hidden;border-radius:22px;aspect-ratio:16 / 9}.preview-cover img{width:100%;height:100%;object-fit:cover}.preview-card h2{font-size:24px}.preview-label{margin-top:4px;color:var(--hearth-clay);font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.preview-body{color:var(--hearth-sage);line-height:1.6;white-space:pre-line}.loader-card{display:flex;align-items:center;gap:10px;color:var(--hearth-sage);font-size:13px;font-weight:700}.empty-recipes{display:flex;align-items:center;gap:14px}.empty-recipes>svg{flex:0 0 auto;color:var(--hearth-accent);font-size:28px}.empty-recipes p{margin-top:4px;color:var(--hearth-sage)}.add-bar{display:grid;grid-template-columns:1fr 130px 110px auto;gap:10px}.shopping-subtitle{margin-top:6px;color:var(--hearth-sage);font-weight:750}.shopping-list{display:grid;gap:12px}.shopping-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid rgba(255,255,255,.85);border-radius:22px;background:#ffffffb8;padding:15px}.shopping-row.is-checked strong{color:var(--hearth-clay);text-decoration:line-through}.shopping-row div{display:grid;gap:3px}.shopping-row span{color:var(--hearth-sage);font-size:14px}.clear-checked-button{justify-self:start}.recipe-picker-modal{max-height:min(760px,calc(100vh - 48px));overflow:hidden}.recipe-picker-list{display:grid;gap:10px;min-height:0;overflow-y:auto;padding-right:4px}.recipe-picker-option{display:grid;gap:4px;width:100%;border:1px solid rgba(228,217,200,.82);border-radius:18px;background:#fff;color:var(--hearth-warm-black);padding:14px;text-align:left;transition:border-color .2s ease,background .2s ease}.recipe-picker-option:hover{border-color:#bc6c2552;background:#fdf8f1b3}.recipe-picker-option span,.recipe-picker-empty{color:var(--hearth-sage);font-size:13px;font-weight:750}.recipe-picker-empty{border:1px dashed var(--hearth-border);border-radius:18px;background:#fdf8f1b8;padding:16px;text-align:center}.check-button,.icon-button{width:36px;height:36px;border:1px solid var(--hearth-border);background:#fff;color:var(--hearth-accent)}.check-button{border-radius:13px}.profile-card{display:flex;align-items:center;gap:18px}.profile-avatar{overflow:hidden;width:86px;height:86px;font-size:32px}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}.profile-menu{position:sticky;top:126px;display:grid;gap:16px;height:calc(100vh - 158px);min-height:620px;border:1px solid rgba(228,217,200,.9);border-radius:34px;background:#fff;box-shadow:0 18px 34px -28px #6b705c47;padding:16px}.profile-menu-hero{display:grid;gap:14px;border-radius:26px;background:#fdf8f1b8;padding:18px}.profile-menu-hero h1{font-size:30px}.profile-menu-hero p:not(.kicker){color:var(--hearth-sage);overflow-wrap:anywhere}.profile-action-list{display:grid;align-content:start;gap:10px;min-height:0;overflow-y:auto}.profile-action-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;width:100%;border:1px solid rgba(228,217,200,.82);border-radius:22px;background:#fff;color:var(--hearth-warm-black);padding:14px;text-align:left;box-shadow:0 8px 18px #6b705c0b;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}.profile-action-row:hover,.profile-action-row.is-active{border-color:#bc6c2552;background:#fdf8f1b3;box-shadow:0 10px 20px #6b705c0f;transform:none}.profile-action-icon{display:grid;width:40px;height:40px;place-items:center;border:1.5px solid rgba(188,108,37,.3);border-radius:999px;background:#bc6c2514;color:var(--hearth-accent)}.profile-action-row span:nth-child(2){display:grid;gap:3px}.profile-action-row strong{font-size:15px}.profile-action-row em{color:var(--hearth-clay);font-size:12px;font-style:normal;font-weight:750;line-height:1.35}.profile-signout-button{align-self:end;width:100%}.profile-erase-data-button,.profile-delete-account-button{align-self:end;width:100%;padding:8px;background:none;border:none;font:inherit;font-weight:750;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.profile-erase-data-button{margin-top:10px;color:var(--hearth-clay)}.profile-delete-account-button{margin-top:4px;color:#c75252}.profile-erase-data-button:hover,.profile-delete-account-button:hover{opacity:.75}.profile-content{min-width:0}.profile-panel{display:grid;gap:22px}.profile-panel h1{font-size:48px}.household-panel{display:grid;gap:18px}.household-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-radius:24px;background:#fdf8f1b8;padding:18px}.household-meta-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.household-meta-row div{display:grid;gap:4px;border:1px solid var(--hearth-border);border-radius:18px;background:#fff;padding:14px}.household-meta-row strong{color:var(--hearth-warm-black)}.member-list{display:flex;flex-wrap:wrap;gap:14px}.member-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--hearth-border);border-radius:999px;background:#fff;padding:8px 12px 8px 8px}.member-pill span{display:grid;width:32px;height:32px;place-items:center;border-radius:999px;background:var(--hearth-accent);color:#fff;font-weight:900}.member-pill strong{color:var(--hearth-sage)}.household-empty,.muted-line{color:var(--hearth-sage);line-height:1.55}.household-empty{display:grid;gap:14px;border:1px dashed var(--hearth-border);border-radius:24px;background:#fdf8f1b8;padding:20px}.household-empty h2{color:var(--hearth-warm-black)}.household-empty-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding:34px max(20px,calc((100vw - 1180px)/2));background:var(--hearth-warm-black);color:#fdf8f1ad;font-size:11px;font-weight:850;letter-spacing:1.1px;text-transform:uppercase}.footer strong{color:var(--hearth-cream);font-size:22px;letter-spacing:0;text-transform:none}.footer nav{display:flex;gap:26px}.loading-screen{min-height:100vh;display:grid;place-content:center;gap:14px;text-align:center;background:radial-gradient(at 0% 0%,hsla(38,59%,92%,1) 0,transparent 50%),radial-gradient(at 50% 0%,hsla(24,46%,90%,1) 0,transparent 50%),var(--hearth-cream)}.spinner{width:34px;height:34px;margin:0 auto;border:3px solid rgba(188,108,37,.18);border-top-color:var(--hearth-accent);border-radius:999px;animation:weatly-spin .8s linear infinite}.spinner.small{width:22px;height:22px}@keyframes weatly-spin{to{transform:rotate(360deg)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1020px){.auth-page,.recipes-layout,.profile-layout{grid-template-columns:1fr}.recipe-books-menu,.profile-menu{position:static;height:auto;min-height:0}.auth-hero{display:none}}@media(max-width:900px){h1{font-size:42px}.topbar{align-items:stretch;flex-wrap:wrap;padding-bottom:16px;background:linear-gradient(180deg,#fdf8f1f5,#fdf8f1bd);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{order:1}.kitchen-chip{order:2}.nav-pills{order:3;width:100%;justify-content:space-between;gap:12px;overflow-x:auto;padding:10px 14px}.nav-pill{min-width:42px;min-height:36px;justify-content:center}.nav-pill span:not(.nav-icon){display:none}.nav-icon{display:inline-flex;font-size:18px}.kitchen-chip span:not(.avatar){display:none}.app-main{width:min(100% - 28px,1180px);padding-top:160px}.section-header,.planner-hero,.planner-footer-actions,.footer,.profile-card{align-items:flex-start;flex-direction:column}.planner-hero h1,.page-hero h1{font-size:44px}.planner-actions,.footer-button-row{width:100%;align-items:stretch}.planner-actions .date-button,.footer-button-row button{flex:1}.weekly-list:before{display:none}.day-row{grid-template-columns:1fr;gap:10px}.day-badge{justify-items:start;display:flex;align-items:baseline;gap:10px}.meal-card{grid-template-columns:1fr;border-radius:30px;padding:18px}.recipe-reader-hero,.recipe-reader-header,.recipe-reader-grid{grid-template-columns:1fr}.recipe-reader-hero,.recipe-reader-header{flex-direction:column}.home-stats-row,.add-bar{grid-template-columns:1fr}.footer nav{flex-wrap:wrap}}@media(max-width:640px){.auth-topbar{padding:24px 20px}.auth-back-link{display:none}.auth-page{width:min(100% - 28px,480px);padding-top:112px}.auth-card{border-radius:34px;padding:34px 22px 26px}.paper-tag{right:-42px;font-size:19px}.social-grid,.form-row{grid-template-columns:1fr}.topbar{padding-inline:16px}.brand{font-size:23px}.brand-mark{width:38px;height:38px}.hero-meta{align-items:flex-start;flex-direction:column;gap:8px}.planner-hero h1,.page-hero h1{font-size:38px}.planner-actions,.footer-button-row{flex-direction:column}.square-button{width:100%}.meal-slot{min-height:116px;border-radius:24px}}.footer nav a{color:inherit;text-decoration:none}.footer nav a:hover{color:var(--hearth-cream)}.privacy-page{display:grid;gap:18px;width:min(760px,100%);margin:0 auto;padding:40px 20px 60px}.privacy-header{display:grid;gap:6px;margin-bottom:8px}.privacy-updated{color:var(--hearth-sage);font-size:13px}.privacy-back-link{justify-self:start;margin-top:6px;color:var(--hearth-accent);font-weight:800;text-decoration:none}.privacy-back-link:hover{text-decoration:underline}.privacy-section h2{margin-bottom:8px}.privacy-section p,.privacy-section li{color:var(--hearth-sage);line-height:1.62}.privacy-section ul{display:grid;gap:8px;padding-left:20px;margin:4px 0}.privacy-section a{color:var(--hearth-accent);font-weight:700}
