:root{--canvas:#f7f3ea;--surface:#fffdf8;--surface-strong:#fff;--ink:#20332e;--muted:#6f7d77;--line:#e7e1d5;--green:#1f5d50;--green-soft:#dcebe5;--coral:#e9825e;--coral-soft:#f8e2d9;--yellow:#e9b94f;--yellow-soft:#f7edcf;--shadow:0 10px 30px #37403912}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-rounded,SF Pro Rounded,Segoe UI,sans-serif}button,a{font:inherit}button{color:inherit}.app-shell{grid-template-columns:104px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fffdf8e0;height:100vh;padding:24px 14px;position:sticky;top:0}.brand-mark{background:var(--green);color:#fff;border-radius:16px;place-items:center;width:50px;height:50px;margin:0 auto 34px;display:grid}.sidebar nav{flex-direction:column;gap:10px;display:flex}.nav-item{min-height:61px;color:var(--muted);border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 5px;font-size:.72rem;font-weight:700;text-decoration:none;display:flex}.nav-item:hover,.nav-item.active{background:var(--green-soft);color:var(--green)}.page{width:min(1500px,100%);margin:0 auto;padding:42px clamp(24px,4vw,68px) 64px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px;display:flex}.topbar-actions{align-items:stretch;gap:10px;display:flex}.eyebrow,.card-kicker{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:.76rem;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:600;line-height:1.05}.subheading{color:var(--muted);margin:10px 0 0;font-size:1rem}.weather{border:1px solid var(--line);background:var(--surface);border-radius:18px;align-items:center;gap:12px;min-width:170px;padding:14px 17px;display:flex}.weather svg{color:var(--yellow)}.weather div{flex-direction:column;display:flex}.weather strong{font-size:1.25rem}.weather span{color:var(--muted);font-size:.78rem}.mobile-menu{display:none}.account-control{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;min-width:168px;padding:8px 9px;display:grid}.account-avatar{background:var(--green-soft);width:34px;height:34px;color:var(--green);border-radius:11px;place-items:center;font-weight:850;display:grid}.account-copy{flex-direction:column;min-width:0;line-height:1.2;display:flex}.account-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.account-copy small{color:var(--muted);text-transform:capitalize;margin-top:3px;font-size:.66rem}.account-control button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.account-control button:hover{background:var(--green-soft);color:var(--green)}.auth-page{background:radial-gradient(circle at top left, var(--green-soft), transparent 42%), var(--canvas);place-items:center;min-height:100vh;padding:32px 18px;display:grid}.auth-card{border:1px solid var(--line);background:#fffdf8f5;border-radius:30px;width:min(100%,540px);padding:clamp(28px,5vw,48px);box-shadow:0 24px 70px #2a40381f}.compact-auth-card{width:min(100%,500px)}.auth-brand{color:var(--green);align-items:center;gap:12px;margin-bottom:38px;font-weight:850;display:flex}.auth-brand svg{background:var(--green);color:#fff;border-radius:14px;width:46px;height:46px;padding:10px}.auth-card h1{font-size:clamp(2rem,7vw,3rem)}.auth-intro{color:var(--muted);margin:14px 0 24px;line-height:1.6}.privacy-note{background:var(--green-soft);color:var(--green);border-radius:15px;align-items:flex-start;gap:10px;margin-bottom:24px;padding:14px;font-size:.86rem;line-height:1.45;display:flex}.privacy-note svg{flex:none}.auth-form{flex-direction:column;gap:17px;display:flex}.auth-form label{flex-direction:column;gap:7px;font-size:.84rem;font-weight:800;display:flex}.auth-form input{width:100%;min-height:50px;color:var(--ink);background:#fff;border:1px solid #cfd8d3;border-radius:13px;outline:0;padding:0 14px;font-size:1rem}.auth-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f5d5021}.auth-form label small{color:var(--muted);font-weight:500}.auth-error{color:#8f3e2c;background:#fbe5df;border-radius:12px;margin:0;padding:12px 14px;font-size:.86rem;font-weight:700}.auth-submit{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:9px;min-height:52px;margin-top:4px;padding:0 17px;font-weight:850;display:flex}.auth-submit svg:last-child{margin-left:auto}.auth-submit:disabled{cursor:wait;opacity:.7}.family-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px;display:flex}.family-workspace{flex-direction:column;gap:20px;display:flex}.family-summary-card,.member-form-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;padding:24px}.family-summary-card{justify-content:space-between;align-items:center;gap:24px;display:flex}.family-summary-card h2,.member-form-card h2{margin:0;font-size:1.5rem}.family-summary-card p,.section-heading p{color:var(--muted);margin:7px 0 0}.family-summary-card .primary-button{flex:none}.section-heading{margin-bottom:22px}.member-form{flex-direction:column;gap:22px;display:flex}.role-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.role-options button{border:1px solid var(--line);min-height:110px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:16px;align-items:flex-start;gap:11px;padding:15px;display:flex}.role-options button:hover,.role-options button.selected{border-color:var(--green);background:var(--green-soft)}.role-options svg{color:var(--green);flex:none}.role-options span{flex-direction:column;gap:5px;display:flex}.role-options strong{font-size:.88rem}.role-options small{color:var(--muted);font-size:.7rem;line-height:1.35}.member-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.member-fields label{flex-direction:column;gap:7px;font-size:.82rem;font-weight:800;display:flex}.member-fields label>small{color:var(--muted);font-weight:500}.member-fields input{min-height:48px;color:var(--ink);background:#fff;border:1px solid #cfd8d3;border-radius:12px;outline:0;padding:0 13px;font-size:.95rem}.member-fields input:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f5d5021}.member-form-actions{justify-content:flex-end;gap:10px;display:flex}.member-form-actions .secondary-button{width:auto}.member-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.member-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:20px;grid-template-columns:48px 1fr;gap:13px;padding:20px;display:grid;position:relative}.member-icon{background:var(--green-soft);width:48px;height:48px;color:var(--green);border-radius:15px;place-items:center;display:grid}.member-icon.child{background:var(--coral-soft);color:var(--coral)}.member-icon.display{background:var(--yellow-soft);color:#9b6b08}.member-card-copy{min-width:0}.member-card h3{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 4px;font-size:1.02rem;overflow:hidden}.member-card-copy>span{color:var(--green);font-size:.72rem;font-weight:800}.member-card p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:8px 0 28px;font-size:.76rem;overflow:hidden}.access-status{border-radius:8px;padding:5px 8px;font-size:.65rem;font-weight:800;position:absolute;bottom:16px;left:20px}.access-status.enabled{background:var(--green-soft);color:var(--green)}.access-status.managed{background:var(--canvas);color:var(--muted)}.dinner-workspace{flex-direction:column;gap:22px;display:flex}.planner-only>.cookbook-heading,.planner-only>.recipe-import-panel,.planner-only>.recipe-form,.planner-only>.empty-cookbook,.planner-only>.recipe-grid,.cookbook-only>.dinner-week-section{display:none}.dinner-week-section,.recipe-form{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;padding:24px}.dinner-section-heading,.cookbook-heading,.recipe-form-heading,.subsection-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.dinner-section-heading{margin-bottom:20px}.dinner-section-heading>svg,.recipe-form-heading>svg{color:var(--green)}.dinner-section-heading h2,.cookbook-heading h2,.recipe-form-heading h2{margin:0;font-size:1.5rem}.dinner-section-heading p,.cookbook-heading p,.recipe-form-heading p{color:var(--muted);margin:7px 0 0}.dinner-week-grid{grid-template-columns:repeat(7,minmax(138px,1fr));gap:9px;padding-bottom:4px;display:grid;overflow-x:auto}.dinner-day{border:1px solid var(--line);background:#fff;border-radius:16px;min-width:138px;padding:14px}.dinner-day.planned{background:#f3faf7;border-color:#a8cabe}.dinner-day-heading{justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:12px;display:flex}.dinner-day-heading span{color:var(--green);text-transform:uppercase;font-size:.7rem;font-weight:850}.dinner-day-heading strong{font-size:.76rem}.dinner-day select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:9px;padding:0 7px;font-size:.75rem}.dinner-day>p{min-height:64px;color:var(--muted);font-size:.75rem;line-height:1.4}.day-servings{align-items:flex-end;gap:6px;margin-top:10px;display:flex}.day-servings label{color:var(--muted);flex:1;font-size:.62rem;font-weight:750}.day-servings input{border:1px solid var(--line);border-radius:8px;width:100%;min-height:34px;margin-top:4px;padding:0 6px}.day-servings button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:34px;padding:0 9px;font-size:.68rem;font-weight:800}.day-servings button:disabled{opacity:.6}.day-error{color:#9d4431;margin-top:7px;font-size:.64rem;display:block}.cookbook-heading{margin-top:8px;scroll-margin-top:24px}.cookbook-actions{align-items:center;gap:10px;display:flex}.cookbook-actions .secondary-button{border-color:var(--line);background:var(--surface);width:auto;color:var(--green)}.recipe-import-panel{background:var(--yellow-soft);box-shadow:var(--shadow);border:1px solid #d7c77e;border-radius:22px;grid-template-columns:minmax(260px,.85fr) minmax(360px,1.15fr);align-items:center;gap:20px;padding:22px 24px;display:grid}.recipe-import-copy{align-items:flex-start;gap:12px;display:flex}.recipe-import-copy>svg{color:var(--green);flex:none}.recipe-import-copy h3{margin:0 0 5px}.recipe-import-copy p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.45}.recipe-import-controls{grid-template-columns:1fr auto;gap:9px;display:grid}.recipe-import-controls input{min-width:0;min-height:46px;color:var(--ink);background:#fff;border:1px solid #c9b86f;border-radius:12px;outline:0;padding:0 13px;font-size:.88rem}.recipe-import-controls input:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f5d5021}.recipe-import-panel .auth-error{grid-column:1/-1;margin:0}.recipe-form{flex-direction:column;gap:22px;display:flex}.recipe-form-heading{justify-content:flex-start}.recipe-form-heading>svg{background:var(--coral-soft);width:48px;height:48px;color:var(--coral);border-radius:14px;flex:none;padding:10px}.recipe-main-fields{grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;display:grid}.recipe-main-fields label,.instruction-field{color:var(--ink);flex-direction:column;gap:7px;font-size:.8rem;font-weight:800;display:flex}.recipe-main-fields label small,.instruction-field small{color:var(--muted);font-weight:500}.recipe-main-fields input,.instruction-field textarea{width:100%;min-height:46px;color:var(--ink);background:#fff;border:1px solid #cfd8d3;border-radius:11px;outline:0;padding:0 12px;font-size:.92rem}.recipe-main-fields input:focus,.instruction-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f5d5021}.recipe-main-fields .wide-field{grid-column:span 2}.recipe-image-preview{border:1px solid var(--line);background:var(--canvas);border-radius:16px;align-items:center;gap:14px;padding:12px;display:flex}.recipe-image-preview img{object-fit:cover;border-radius:11px;flex:none;width:112px;height:78px}.recipe-image-preview div{flex-direction:column;gap:4px;display:flex}.recipe-image-preview span{color:var(--muted);font-size:.78rem}.subsection-heading h3{margin:0}.subsection-heading button{border:1px solid var(--line);color:var(--green);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:5px;padding:7px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.ingredient-editor{flex-direction:column;gap:9px;display:flex}.ingredient-row{grid-template-columns:82px 100px minmax(170px,1.4fr) minmax(130px,1fr) 140px 38px;gap:7px;display:grid}.ingredient-row input,.ingredient-row select{border:1px solid var(--line);min-width:0;min-height:42px;color:var(--ink);background:#fff;border-radius:9px;padding:0 9px;font-size:.78rem}.ingredient-row button{border:1px solid var(--line);color:var(--coral);cursor:pointer;background:#fff;border-radius:9px;place-items:center;display:grid}.ingredient-row button:disabled{color:#b9bfbc;cursor:not-allowed}.instruction-field textarea{resize:vertical;min-height:130px;padding:12px;line-height:1.5}.recipe-form-actions{justify-content:flex-end;gap:10px;display:flex}.recipe-form-actions .secondary-button{width:auto}.empty-cookbook{text-align:center;background:#fffdf8a6;border:1px dashed #bdcac5;border-radius:24px;padding:54px 24px}.empty-cookbook svg{color:var(--coral)}.empty-cookbook h2{margin:14px 0 7px}.empty-cookbook p{color:var(--muted);margin:0}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;display:grid}.recipe-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:22px;padding:21px}.recipe-card-image{object-fit:cover;background:var(--canvas);border-radius:22px 22px 0 0;width:calc(100% + 42px);height:190px;margin:-21px -21px 20px;display:block}.recipe-card-top{grid-template-columns:48px 1fr;gap:13px;display:grid}.recipe-pot{background:var(--coral-soft);width:48px;height:48px;color:var(--coral);border-radius:15px;place-items:center;display:grid}.recipe-card h3{margin:1px 0 5px;font-size:1.15rem}.recipe-card-top p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.45}.recipe-facts{flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 13px;display:flex}.recipe-facts>span,.recipe-facts label{background:var(--canvas);min-height:34px;color:var(--muted);border-radius:10px;align-items:center;gap:6px;padding:0 10px;font-size:.72rem;font-weight:750;display:inline-flex}.recipe-facts input{border:1px solid var(--line);text-align:center;background:#fff;border-radius:7px;width:60px;min-height:27px}.recipe-details{border-top:1px solid var(--line)}.recipe-details summary{color:var(--green);cursor:pointer;justify-content:space-between;align-items:center;padding:14px 0 0;font-size:.78rem;font-weight:850;list-style:none;display:flex}.recipe-details summary::-webkit-details-marker{display:none}.recipe-details[open] summary svg{transform:rotate(180deg)}.scaled-recipe h4{margin:18px 0 8px}.scaled-recipe ul{margin:0;padding:0;list-style:none}.scaled-recipe ul li{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr auto;align-items:baseline;gap:9px;padding:9px 0;font-size:.8rem;display:grid}.scaled-recipe ul strong{color:var(--green)}.scaled-recipe ul small{color:var(--muted);font-size:.64rem}.recipe-steps{color:var(--muted);padding-left:24px;font-size:.8rem;line-height:1.55}.recipe-steps li{padding:4px 0 4px 4px}.recipe-source{color:var(--green);align-items:center;gap:5px;font-size:.75rem;font-weight:800;display:inline-flex}.dashboard-grid{grid-template-columns:1.05fr 1.35fr .9fr;align-items:stretch;gap:20px;display:grid}.card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:24px;padding:24px}.card h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.15rem,2vw,1.55rem)}.card p{color:var(--muted);line-height:1.55}.card-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.card-heading.compact{margin-bottom:10px}.card-heading>svg{color:var(--green)}.schedule-card{grid-row:span 2}.dinner-card{background:var(--surface-strong);grid-column:span 1}.shopping-card{background:var(--yellow-soft);border-color:#ebddaf}.chores-card{grid-column:span 1}.note-card{background:var(--green);color:#fff;border-color:var(--green)}.note-card .card-kicker,.note-card p{color:#dcebe5}.icon-button,.mobile-menu{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.timeline{flex-direction:column;margin:4px 0 22px;display:flex}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:72px 14px 1fr;align-items:center;gap:10px;min-height:68px;display:grid}.timeline-row time{color:var(--muted);font-size:.79rem;font-weight:700}.timeline-dot{background:var(--green);border-radius:50%;width:10px;height:10px}.timeline-dot.yellow{background:var(--yellow)}.timeline-dot.coral{background:var(--coral)}.timeline-row strong{font-size:.92rem}.dinner-illustration{background:var(--coral-soft);height:116px;color:var(--coral);border-radius:18px;place-items:center;margin:-5px -5px 20px;display:grid}.dinner-meta{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.dinner-meta span,.tag-row span{background:var(--canvas);color:var(--ink);border-radius:10px;padding:7px 10px;font-size:.75rem;font-weight:750}.primary-button,.secondary-button,.icon-text-button{cursor:pointer;border-radius:13px;justify-content:center;align-items:center;gap:7px;min-height:43px;padding:0 16px;font-weight:800;display:inline-flex}.primary-button{background:var(--green);color:#fff;border:0;text-decoration:none}.secondary-button{width:100%;color:var(--ink);background:#ffffff9e;border:1px solid #d5c083}.icon-text-button{color:#fff;background:#ffffff1a;border:1px solid #ffffff47}.text-button{color:var(--green);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:6px 0;font-weight:800;display:inline-flex}.progress-track{background:#ffffffbf;border-radius:99px;height:9px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--green);height:100%;display:block}.tag-row{flex-wrap:wrap;gap:7px;margin:16px 0 20px;display:flex}.tag-row span{background:#fff9}.chore-list{margin:0 0 14px;padding:0;list-style:none}.chore-list li{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:11px 0;display:flex}.check-circle{border:2px solid #b8c4bf;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;display:grid}.completed .check-circle{border-color:var(--green);background:var(--green);color:#fff}.chore-list li>div{flex-direction:column;gap:2px;display:flex}.chore-list strong{font-size:.88rem}.chore-list small{color:var(--muted);font-size:.72rem}.completed strong{color:var(--muted);text-decoration:line-through}@media (min-width:1220px){.note-card{min-height:214px}}@media (max-width:1050px){.topbar-actions{flex-direction:column}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-card{grid-row:span 1}.note-card{grid-column:span 2}.role-options,.member-grid,.recipe-main-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ingredient-row{grid-template-columns:72px 90px minmax(150px,1fr) minmax(120px,1fr)}.ingredient-row select{grid-column:span 2}}@media (max-width:720px){.app-shell{display:block}.sidebar{z-index:10;border:1px solid var(--line);width:auto;height:68px;box-shadow:var(--shadow);border-radius:20px;padding:6px;position:fixed;inset:auto 12px 10px}.brand-mark,.nav-item:nth-child(n+6){display:none}.sidebar nav{grid-template-columns:repeat(5,1fr);gap:4px;height:100%;display:grid}.nav-item{min-height:54px;padding:4px;font-size:.64rem}.page{padding:24px 16px 100px}.topbar{flex-wrap:wrap;align-items:center}.topbar>div:nth-child(2){flex:1}.mobile-menu{display:grid}.weather,.topbar-actions,.account-control{width:100%}.family-header,.family-summary-card{flex-direction:column}.family-header .account-control,.family-summary-card .primary-button{width:100%}.role-options,.member-fields,.member-grid{grid-template-columns:1fr}.cookbook-heading,.dinner-section-heading{flex-direction:column;align-items:flex-start}.cookbook-actions{flex-direction:column;width:100%}.cookbook-actions .primary-button,.cookbook-actions .secondary-button{width:100%}.recipe-import-panel{grid-template-columns:1fr;padding:18px}.recipe-import-controls,.recipe-main-fields,.recipe-grid{grid-template-columns:1fr}.recipe-main-fields .wide-field{grid-column:span 1}.ingredient-row{border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;padding:10px}.ingredient-row input:nth-child(3),.ingredient-row input:nth-child(4),.ingredient-row select{grid-column:span 2}.ingredient-row button{grid-column:span 2;min-height:38px}.scaled-recipe ul li{grid-template-columns:76px 1fr}.scaled-recipe ul small{grid-column:2}.dashboard-grid{flex-direction:column;display:flex}.note-card{order:-1}.card{border-radius:20px}}.command-page{max-width:1500px}.simple-page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px;display:flex}.simple-page-header h1{margin:2px 0 6px;font-size:clamp(2rem,4vw,3.5rem)}.simple-page-header p{color:var(--muted);margin:0}.command-layout{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.command-form,.command-list,.notes-grid{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;padding:22px}.command-form{gap:15px;display:grid;position:sticky;top:24px}.command-form label{gap:6px;font-size:.76rem;font-weight:800;display:grid}.command-form input,.command-form select,.command-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:11px 12px}.command-form textarea{resize:vertical}.form-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.workspace-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.workspace-title>div{flex:1}.workspace-title h2{margin:0}.workspace-title p,.workspace-title span{color:var(--muted);margin:3px 0 0;font-size:.86rem}.date-group+.date-group,.shop-group+.shop-group{margin-top:22px}.date-group h3,.shop-group h3{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em;margin:0 0 7px;padding-bottom:7px;font-size:.82rem}.event-row{border-bottom:1px solid var(--line);grid-template-columns:82px 12px 1fr 34px;align-items:start;gap:10px;padding:13px 0;display:grid}.event-row time{font-size:.78rem;font-weight:800}.event-row div,.shop-row div,.chore-board-row div{gap:3px;display:grid}.event-row small,.shop-row small,.chore-board-row small{color:var(--muted)}.event-row p{margin:4px 0 0}.tiny-danger{color:#b65341;cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.tiny-danger:hover{background:#fff0ed}.shopping-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.shop-row,.chore-board-row{border-bottom:1px solid var(--line);grid-template-columns:38px 1fr 34px;align-items:center;gap:8px;padding:11px 0;display:grid}.round-check{border:1px solid var(--line);width:34px;height:34px;color:var(--green);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:grid}.shop-row.completed strong,.chore-board-row.completed strong{color:var(--muted);text-decoration:line-through}.checkbox-label{grid-template-columns:auto 1fr;align-items:center;display:flex!important}.checkbox-label input{width:auto}.notes-grid{box-shadow:none;background:0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.family-note{border:1px solid var(--line);background:#fffdf8;border-radius:18px;min-height:170px;padding:20px;position:relative}.family-note.pinned{background:var(--green);color:#fff}.family-note>span{text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:5px;font-size:.69rem;font-weight:900;display:flex}.family-note h3{margin:12px 0 6px;font-size:1.3rem}.family-note p{white-space:pre-wrap;line-height:1.55}.family-note .tiny-danger{position:absolute;bottom:12px;right:12px}.empty-command{min-height:180px;color:var(--muted);text-align:center;align-content:center;place-items:center;display:grid}.dashboard-empty{color:var(--muted);font-size:.9rem}@media (max-width:900px){.command-layout{grid-template-columns:1fr}.command-form{position:static}.notes-grid{grid-template-columns:1fr}}@media (max-width:720px){.simple-page-header{flex-direction:column}.simple-page-header .account-control{width:100%}.form-pair{grid-template-columns:1fr}.event-row{grid-template-columns:70px 10px 1fr 32px}.shopping-toolbar>*{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.ingredient-column-header{color:var(--muted);grid-template-columns:90px 110px minmax(170px,1.3fr) minmax(150px,1fr) 150px 42px;gap:8px;padding:0 2px;font-size:.72rem;font-weight:800;display:grid}.ingredient-column-header span{gap:2px;display:grid}.ingredient-column-header small{font-size:.62rem;font-weight:500;line-height:1.2}@media (max-width:1100px){.ingredient-column-header{display:none}}.meal-planner{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;gap:22px;padding:24px;display:grid}.meal-planner-intro,.meal-week-summary,.meal-week-footer{justify-content:space-between;align-items:center;gap:20px;display:flex}.meal-planner-intro h2,.meal-week-summary h3{margin:3px 0 5px}.meal-planner-intro p{color:var(--muted);margin:0}.meal-week-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.meal-week-tabs button{text-align:left;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;gap:4px;padding:13px 15px;display:grid}.meal-week-tabs button.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green);background:#edf7f3}.meal-week-tabs span{color:var(--muted);font-size:.76rem}.shopping-deadline{background:#fff6d9;border:1px solid #ead49b;border-radius:13px;align-items:center;gap:10px;padding:11px 14px;display:flex}.shopping-deadline div{gap:2px;display:grid}.shopping-deadline small{color:var(--muted)}.meal-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.meal-day-card{border:1px solid var(--line);background:#fffdf8;border-radius:16px;flex-direction:column;gap:11px;min-width:0;padding:13px;display:flex}.meal-day-card.planned{background:#f1f8f5;border-color:#9bcdbf}.meal-day-heading{color:var(--green);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;gap:8px;font-size:.75rem;display:flex}.meal-day-card label{color:var(--muted);gap:5px;font-size:.72rem;font-weight:700;display:grid}.meal-day-card select,.meal-day-card input{width:100%;min-width:0;min-height:40px;color:var(--ink);font:inherit;background:#fff;border:1px solid #cfd8d3;border-radius:10px;padding:8px 9px}.meal-special-choice{color:var(--green);background:#e7f2ee;border-radius:10px;padding:10px;font-size:.78rem;font-weight:800}.meal-progress{gap:3px;display:grid}.meal-progress span{color:var(--muted);font-size:.82rem}.meal-week-actions{align-items:center;gap:10px;display:flex}.meal-week-actions button{width:auto}.meal-planner-message{color:var(--green);background:#e7f2ee;border-radius:11px;margin:0;padding:11px 13px;font-weight:700}.meal-planner-empty{border:1px dashed var(--line);color:var(--muted);border-radius:12px;padding:13px}@media (max-width:1250px){.meal-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:850px){.meal-week-tabs,.meal-week-grid{grid-template-columns:1fr}.meal-planner-intro,.meal-week-summary,.meal-week-footer{flex-direction:column;align-items:stretch}.meal-week-actions{grid-template-columns:1fr;display:grid}.meal-week-actions button{width:100%}}.planned-recipe-selection{background:#ffffffb8;border:1px solid #414e3e2e;border-radius:14px;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:8px;display:grid}.planned-recipe-selection>img,.planned-recipe-placeholder{object-fit:cover;border-radius:10px;width:68px;height:58px}.planned-recipe-placeholder{color:#53614d;background:#ebe6da;place-items:center;display:grid}.planned-recipe-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.planned-recipe-copy small{color:#787b70;letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.planned-recipe-copy strong{color:#263426;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;overflow:hidden}.planned-recipe-copy span{color:#6c7168;font-size:.78rem}.choose-recipe-button{color:#3f5841;cursor:pointer;font:inherit;background:#e4eadf;border:0;border-radius:10px;padding:9px 11px;font-size:.78rem;font-weight:800}.choose-recipe-button:hover{background:#d7e2d0}.recipe-picker-backdrop{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1d231d94;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.recipe-picker-dialog{background:#f8f5ee;border:1px solid #45524233;border-radius:24px;flex-direction:column;gap:20px;width:min(1120px,100%);max-height:min(820px,100vh - 48px);display:flex;overflow:hidden;box-shadow:0 28px 90px #1920194d}.recipe-picker-header{justify-content:space-between;align-items:flex-start;gap:24px;padding:26px 28px 0;display:flex}.recipe-picker-header small{color:#71806c;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.72rem;font-weight:800;display:block}.recipe-picker-header h3{color:#263426;margin:0;font-size:clamp(1.35rem,2.4vw,2rem)}.recipe-picker-header p{color:#687064;max-width:700px;margin:6px 0 0;line-height:1.5}.recipe-picker-close{color:#405041;cursor:pointer;background:#fff;border:1px solid #414e3e26;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:grid}.recipe-picker-search{color:#697468;background:#fff;border:1px solid #414e3e2e;border-radius:14px;align-items:center;gap:10px;margin:0 28px;padding:0 15px;display:flex}.recipe-picker-search input{color:#253225;width:100%;min-height:48px;font:inherit;background:0 0;border:0;outline:0}.recipe-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 28px 28px;display:grid;overflow-y:auto}.recipe-picker-card{background:#fff;border:1px solid #414e3e29;border-radius:18px;flex-direction:column;min-width:0;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;overflow:hidden;box-shadow:0 8px 22px #2a34290f}.recipe-picker-card:hover{border-color:#4e6b4b6b;transform:translateY(-2px);box-shadow:0 14px 30px #2a34291a}.recipe-picker-card.selected{border-color:#688467;box-shadow:0 0 0 2px #6884672e}.recipe-picker-image{aspect-ratio:16/9;background:#e8e5dc;overflow:hidden}.recipe-picker-image img{object-fit:cover;width:100%;height:100%}.recipe-picker-image>div{color:#65715f;place-items:center;width:100%;height:100%;display:grid}.recipe-picker-card-body{flex-direction:column;flex:1;gap:15px;padding:16px;display:flex}.recipe-picker-card-body h4{color:#263426;margin:0;font-size:1.05rem;line-height:1.25}.recipe-picker-card-body p{color:#6a7066;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.7em;margin:6px 0 0;font-size:.84rem;line-height:1.4;display:-webkit-box;overflow:hidden}.recipe-picker-facts{color:#687166;flex-wrap:wrap;gap:9px 14px;font-size:.8rem;display:flex}.recipe-picker-facts span{align-items:center;gap:5px;display:inline-flex}.recipe-picker-card-body button{justify-content:center;width:100%;margin-top:auto}.recipe-picker-empty{color:#697267;text-align:center;align-content:center;place-items:center;gap:6px;min-height:260px;padding:30px;display:grid}.recipe-picker-empty strong{color:#2f3d30;font-size:1.05rem}@media (max-width:900px){.recipe-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.planned-recipe-selection{grid-template-columns:58px minmax(0,1fr)}.planned-recipe-selection>img,.planned-recipe-placeholder{width:58px;height:54px}.choose-recipe-button{grid-column:1/-1;width:100%}.recipe-picker-backdrop{align-items:end;padding:0}.recipe-picker-dialog{border-radius:22px 22px 0 0;width:100%;max-height:92vh}.recipe-picker-header{padding:21px 18px 0}.recipe-picker-header p{font-size:.86rem}.recipe-picker-search{margin:0 18px}.recipe-picker-grid{grid-template-columns:1fr;gap:14px;padding:0 18px 24px}.recipe-picker-card{grid-template-columns:112px minmax(0,1fr);display:grid}.recipe-picker-image{aspect-ratio:auto;height:100%;min-height:178px}.recipe-picker-card-body{padding:13px}}@media (prefers-reduced-motion:reduce){.recipe-picker-card{transition:none}}.meal-day-card{min-width:0}.meal-day-card .planned-recipe-selection{flex-direction:column;align-items:stretch;gap:8px;min-width:0;padding:8px;display:flex;overflow:hidden}.meal-day-card .planned-recipe-selection>img,.meal-day-card .planned-recipe-placeholder{object-fit:cover;border-radius:10px;width:100%;height:88px;min-height:88px;display:block}.meal-day-card .planned-recipe-placeholder{place-items:center}.meal-day-card .planned-recipe-copy{text-align:left;flex-direction:column;gap:4px;min-width:0;display:flex}.meal-day-card .planned-recipe-copy small{display:none}.meal-day-card .planned-recipe-copy strong{color:#263426;min-height:2.5em;text-overflow:initial;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;line-height:1.25;display:-webkit-box;overflow:hidden}.meal-day-card .planned-recipe-copy span{color:#687166;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.3;display:block;overflow:hidden}.meal-day-card .choose-recipe-button{text-align:center;border-radius:9px;width:100%;min-height:34px;margin:0;padding:7px 9px;font-size:.76rem}.meal-day-card.planned{min-height:342px}.meal-week-grid{align-items:stretch}.meal-week-grid .meal-day-card{height:100%}@media (min-width:1100px){.meal-week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.meal-day-card .planned-recipe-selection{grid-template-columns:none}}@media (max-width:1099px){.meal-day-card.planned{min-height:auto}.meal-day-card .planned-recipe-selection{grid-template-columns:88px minmax(0,1fr);align-items:center;display:grid}.meal-day-card .planned-recipe-selection>img,.meal-day-card .planned-recipe-placeholder{grid-row:1/3;width:88px;height:76px;min-height:76px}.meal-day-card .choose-recipe-button{grid-column:2}}@media (max-width:620px){.meal-day-card .planned-recipe-selection{grid-template-columns:78px minmax(0,1fr)}.meal-day-card .planned-recipe-selection>img,.meal-day-card .planned-recipe-placeholder{width:78px;height:70px;min-height:70px}}.weather-details{flex-direction:column;gap:2px;min-width:180px;display:flex}.weather-primary{align-items:baseline;gap:8px;display:flex}.weather-primary strong{font-size:1.05rem;line-height:1.1}.weather-primary span{font-size:.78rem;font-weight:600;line-height:1.2}.weather-secondary{opacity:.78;font-size:.7rem;line-height:1.25;display:block}@media (max-width:760px){.weather-details{min-width:150px}.weather-primary{gap:6px}.weather-primary strong{font-size:.95rem}.weather-primary span,.weather-secondary{font-size:.66rem}}.sidebar{flex-direction:column;min-height:100vh;display:flex}.sidebar-navigation{flex:none}.sidebar-account-slot{justify-content:center;margin-top:auto;padding:14px 0 20px;display:flex}.sidebar-account-link{width:44px;height:44px;color:var(--ink,#123f38);background:#d9ebe5eb;border:1px solid #124c432e;border-radius:50%;place-items:center;text-decoration:none;transition:transform .14s,border-color .14s,box-shadow .14s;display:grid;overflow:hidden;box-shadow:0 4px 14px #1c3f3814}.sidebar-account-link:hover,.sidebar-account-link:focus-visible{border-color:#124c436b;outline:none;transform:translateY(-1px);box-shadow:0 6px 18px #1c3f3824}.sidebar-account-image{object-fit:cover;width:100%;height:100%}.sidebar-account-initial{font-size:1rem;font-weight:800;line-height:1}.topbar-actions{flex:1;justify-content:flex-end}.topbar-actions .weather{width:min(100%,330px);min-width:275px}.settings-page{max-width:1120px}.settings-header{margin-bottom:28px}.settings-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;display:grid}.settings-profile-card,.settings-session-card{padding:26px}.settings-profile-heading{align-items:center;gap:18px;display:flex}.settings-profile-heading h2{margin:3px 0 2px}.settings-profile-heading p{text-transform:capitalize;margin:0}.settings-profile-image,.settings-profile-initial{border-radius:50%;flex:0 0 74px;width:74px;height:74px}.settings-profile-image{object-fit:cover}.settings-profile-initial{color:var(--ink,#123f38);background:#d9ebe5eb;place-items:center;font-size:1.6rem;font-weight:800;display:grid}.settings-details{gap:0;margin:28px 0 0;display:grid}.settings-details div{border-top:1px solid #124c431a;grid-template-columns:130px minmax(0,1fr);gap:14px;padding:14px 0;display:grid}.settings-details dt{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:800}.settings-details dd{overflow-wrap:anywhere;margin:0}.settings-session-card .account-control{margin-top:22px}@media (max-width:900px){.settings-grid{grid-template-columns:1fr}.topbar-actions .weather{width:auto;min-width:240px}}@media (max-width:760px){.sidebar-account-slot{padding-bottom:12px}.sidebar-account-link{width:40px;height:40px}.topbar-actions .weather{width:100%;min-width:0}.settings-details div{grid-template-columns:1fr;gap:5px}}.weather{gap:12px}.weather>svg{flex:none}@media (max-width:760px){.weather>svg{width:34px;height:34px}}.weather{gap:16px;min-height:94px;padding:8px 20px 8px 12px}.weather-artwork{object-fit:contain;filter:drop-shadow(0 6px 10px #224c4324);flex:0 0 82px;width:82px;height:82px;display:block}.weather-details{justify-content:center}.weather-primary strong{font-size:1.25rem}.weather-primary span{font-size:.84rem}.weather-secondary{font-size:.73rem}@media (max-width:900px){.weather-artwork{flex-basis:68px;width:68px;height:68px}}@media (max-width:760px){.weather{gap:10px;min-height:70px;padding:8px 12px}.weather-artwork{flex-basis:56px;width:56px;height:56px}}.weather-link{color:inherit;cursor:pointer;text-decoration:none;transition:transform .14s,border-color .14s,box-shadow .14s}.weather-link:hover,.weather-link:focus-visible{border-color:#1c605257;outline:none;transform:translateY(-2px);box-shadow:0 10px 24px #1f443b1f}.weather-page{max-width:1180px}.weather-page-header{align-items:flex-start;gap:24px;margin-bottom:26px;display:flex}.weather-back-link{color:inherit;align-items:center;gap:7px;margin-top:8px;font-weight:800;text-decoration:none;display:inline-flex}.weather-current-card{background:#fffdf8f0;border:1px solid #1a4e4326;border-radius:22px;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:26px;padding:28px;display:grid;box-shadow:0 12px 34px #1f443b14}.weather-current-main{align-items:center;gap:22px;display:flex}.forecast-artwork{object-fit:contain;flex:none;display:block}.weather-location{color:var(--muted,#66756f);margin:0 0 4px;font-size:.86rem;font-weight:700}.weather-current-temperature{letter-spacing:-.06em;font-family:Georgia,Times New Roman,serif;font-size:clamp(4rem,8vw,6.5rem);font-weight:800;line-height:.9}.weather-current-main h2{margin:10px 0 4px;font-size:1.45rem}.weather-current-main p:last-child{color:var(--muted,#66756f);margin:0}.weather-current-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.weather-current-metrics>div{background:#f6f3eab3;border:1px solid #1a4e431a;border-radius:14px;grid-template-columns:24px 1fr;align-content:center;column-gap:9px;min-height:78px;padding:12px;display:grid}.weather-current-metrics svg{grid-row:1/span 2;align-self:center}.weather-current-metrics span{color:var(--muted,#66756f);font-size:.72rem}.weather-current-metrics strong{font-size:.88rem}.weather-section{margin-top:26px}.weather-section-heading{justify-content:space-between;align-items:end;margin-bottom:13px;display:flex}.weather-section-heading h2{margin:2px 0 0}.hourly-forecast-row{scrollbar-width:thin;grid-auto-columns:minmax(104px,1fr);grid-auto-flow:column;gap:10px;padding:2px 2px 12px;display:grid;overflow-x:auto}.hourly-forecast-item{text-align:center;background:#fffdf8e6;border:1px solid #1a4e431f;border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-height:190px;padding:14px 10px;display:flex}.hourly-forecast-item time{font-size:.76rem;font-weight:800}.hourly-forecast-item>strong{font-size:1.16rem}.hourly-forecast-item>span{min-height:31px;color:var(--muted,#66756f);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.25;display:-webkit-box;overflow:hidden}.hourly-rain,.daily-rain{color:#477e87;align-items:center;gap:4px;font-size:.72rem;font-weight:800;display:inline-flex}.daily-forecast-list{gap:9px;display:grid}.daily-forecast-row{background:#fffdf8e6;border:1px solid #1a4e431f;border-radius:16px;grid-template-columns:minmax(150px,1fr) 72px 90px 90px;align-items:center;gap:16px;padding:12px 18px;display:grid}.daily-forecast-row>div:first-child{flex-direction:column;min-width:0;display:flex}.daily-forecast-row>div:first-child span{color:var(--muted,#66756f);font-size:.76rem}.daily-temperatures{justify-content:flex-end;gap:10px;font-size:1rem;display:flex}.daily-temperatures span{color:var(--muted,#66756f)}.weather-source-note{color:var(--muted,#66756f);flex-wrap:wrap;gap:8px 20px;margin:22px 0 10px;font-size:.72rem;display:flex}.weather-unavailable{padding:28px}@media (max-width:920px){.weather-current-card{grid-template-columns:1fr}}@media (max-width:700px){.weather-page-header{display:block}.weather-back-link{margin-bottom:18px}.weather-current-card{padding:18px}.weather-current-main{align-items:flex-start;gap:10px}.weather-current-main .forecast-artwork{width:96px;height:96px}.weather-current-temperature{font-size:4rem}.weather-current-metrics{grid-template-columns:1fr 1fr}.daily-forecast-row{grid-template-columns:minmax(110px,1fr) 58px 60px;gap:8px;padding:10px}.daily-forecast-row .daily-rain{display:none}.daily-forecast-row .forecast-artwork{width:54px;height:54px}}
