:root{font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:#302a30;background:#f6f5f2;--brand:#501e4a;--muted:#756b74;--line:#e2ddd6;--paper:#fff}*{box-sizing:border-box}body{margin:0}h1{font-size:1.9rem;letter-spacing:-.03em;font-weight:600;margin:.3rem 0}h2{font-size:1.1rem;font-weight:600;margin:0 0 .5rem}h3{font-size:1rem;font-weight:500}p{margin:.5rem 0}.muted{color:var(--muted);font-size:.875rem}.eyebrow,.nav-label{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}button,input,select,textarea{font:inherit;color:inherit}button,.button{background:#fff;border:1px solid var(--line);padding:.65rem .9rem;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block;font-size:.875rem}button:hover:not(:disabled),.button:hover{background:#f5f0f4}button:disabled{opacity:.5;cursor:default}.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.primary:hover:not(:disabled){background:#69265f}.quiet{background:transparent;border:0;color:var(--brand)}a{color:var(--brand)}label{font-size:.875rem;display:block}input,select,textarea{display:block;width:100%;background:#fff;border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem;margin-top:.3rem;min-width:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.wordmark{font-size:1.4rem;font-weight:600;color:var(--brand);letter-spacing:-.05em;text-decoration:none}.wordmark span{font-weight:400}header{max-width:1440px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:1.3rem 2rem;background:#fff;border-bottom:1px solid var(--line)}.user-bar{display:flex;align-items:center;gap:1rem;font-size:.875rem}.shell{max-width:1440px;margin:auto;display:grid;grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:2rem 1.2rem;border-right:1px solid var(--line)}nav{display:grid;gap:.4rem;margin-top:.8rem}nav button{text-align:left;background:transparent;border:0;padding:.7rem .8rem}nav button.active{background:#eee6ed;color:var(--brand);font-weight:600}.private-link{display:block;margin-top:2rem;font-size:.875rem;padding:.7rem .8rem;border-top:1px solid var(--line)}.content{padding:2rem 2.3rem;min-width:0}.page-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}.panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:1.3rem;margin-bottom:1.2rem}.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.home-card{background:#fff;border:1px solid var(--line);border-radius:14px;text-align:left;padding:1.5rem}.home-card h2{margin-top:1.1rem}.home-card p{font-size:.875rem;color:var(--muted)}.card-symbol{font-size:1.6rem;color:var(--brand);background:#f3edf2;border-radius:9px;display:inline-flex;width:45px;height:45px;align-items:center;justify-content:center}.card-link{display:block;color:var(--brand);margin-top:1.2rem;font-size:.875rem}.home-next{margin-top:1.8rem}.shop-form,.chore-form{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}.grow{flex:1;min-width:180px}.shop-form label:not(.grow){width:115px}.shop-form label:last-of-type{width:170px}.chore-form label:not(.grow){min-width:130px;flex:1}.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0 1rem}.check{display:flex;gap:.5rem;align-items:center}.check input{width:18px;height:18px;margin:0;accent-color:var(--brand)}.list-group{border:1px solid var(--line);background:#fff;border-radius:10px;padding:1.2rem;margin-bottom:1rem}.list-group h2{color:var(--muted);font-size:.875rem}.item-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid var(--line)}.item-row:first-of-type{border-top:0}.item-main{display:flex;gap:.7rem;align-items:center;flex:1;min-width:0}.item-main input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--brand)}.item-name{font-weight:500;overflow-wrap:anywhere}.item-detail{display:block;color:var(--muted);font-size:.8rem;margin-top:.2rem}.purchased .item-name{text-decoration:line-through;color:var(--muted)}.purchased{opacity:.75}.item-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.item-actions button{padding:.4rem .6rem;font-size:.8rem}.jumbo-note{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-top:2rem}.jumbo-note div{flex:1}.jumbo-note .button{white-space:nowrap}.empty{padding:1.5rem;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:10px;font-size:.875rem}.overdue{color:#a54646}.due-badge{padding:.2rem .5rem;border-radius:5px;background:#f3edf2;color:var(--brand);font-size:.75rem}.history{margin-top:1.5rem}.history-row{padding:.7rem;border-bottom:1px solid var(--line);font-size:.875rem}.week-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1.2rem}.week-toolbar span{font-weight:500}.menu-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.menu-day{padding:1rem .7rem;background:#fff;border:1px solid var(--line);border-radius:11px}.menu-day.today{border-color:#b399ad}.menu-day h2{font-size:.875rem}.menu-day .day-date{font-size:.75rem;color:var(--muted);margin-bottom:1rem}.menu-day label{font-size:.75rem}.menu-day select{font-size:.8rem;padding:.5rem .3rem}.menu-day input{font-size:.875rem;padding:.5rem}.menu-day button{width:100%;margin-top:.7rem;padding:.5rem;font-size:.75rem}.menu-actions{margin:1.5rem 0 2rem}.section-title{display:flex;justify-content:space-between;align-items:center;gap:1rem}.recipe-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.9rem 0;border-top:1px solid var(--line)}.recipe-row:first-of-type{border-top:0}.account-form{max-width:480px;display:grid;gap:1rem}.account-form button{justify-self:start}.undo{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f3edf2;border-radius:8px;margin:1rem 0}details{margin-top:1rem;font-size:.875rem}summary{cursor:pointer;color:var(--brand);padding:.4rem 0}footer{max-width:1440px;margin:auto;text-align:right;padding:1.5rem 2rem;color:var(--muted);font-size:.8rem}#message:empty{display:none}#message{padding:.9rem 1rem;margin-bottom:1.5rem;background:#eef6ef;border:1px solid #d0e2d2;border-radius:8px;font-size:.875rem}#message.error,.error{color:#963a3a}#message.error{background:#fbecec;border-color:#ebcaca}.login{max-width:420px;margin:10vh auto;padding:2rem;background:#fff;border:1px solid var(--line);border-radius:14px}.login h1{margin-top:1.5rem}.login form{display:grid;gap:1rem;margin-top:1.5rem}.login form button{width:100%}.login [role=alert]{color:#963a3a}dialog{border:1px solid var(--line);border-radius:14px;max-width:720px;width:calc(100% - 2rem);padding:1.5rem;color:inherit}dialog::backdrop{background:#2b1f2b66}dialog textarea{width:100%}.recipe-basics{display:grid;grid-template-columns:1fr 150px;gap:1rem;margin-top:1rem}.ingredient{display:grid;grid-template-columns:minmax(100px,1fr) 100px 100px auto;gap:.5rem;align-items:end;margin-bottom:.7rem}.ingredient input{font-size:.875rem}.ingredient button{padding:.6rem}.recipe-basics~label{margin:1rem 0}[hidden]{display:none!important}@media(max-width:1150px){.menu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{padding:1rem;border-right:0;border-bottom:1px solid var(--line)}.nav-label{display:none}nav{display:flex;flex-wrap:wrap;gap:.25rem;margin:0}.private-link{margin:.7rem 0 0;border:0;padding:.4rem .8rem}.content{padding:1.5rem}.home-grid{gap:.7rem}.home-card{padding:1.1rem}}@media(max-width:600px){header{padding:1rem}.content{padding:1rem}.home-grid{grid-template-columns:1fr}.home-card .card-symbol{float:right}.home-card h2{margin-top:0}.home-card .card-link{margin-top:.7rem}h1{font-size:1.6rem}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-form label:not(.grow),.shop-form label:last-of-type{flex:1;width:auto;min-width:110px}.shop-form .grow{flex-basis:100%}.item-row{flex-wrap:wrap}.item-actions{margin-left:1.9rem}.jumbo-note{display:block}.jumbo-note .button{margin-top:1rem}.recipe-basics{grid-template-columns:1fr}.ingredient{grid-template-columns:1fr 75px 65px auto}.ingredient button{padding:.6rem .3rem}.ingredient label{font-size:.75rem}.login{margin:2rem 1rem}button,.button,input,select{min-height:42px}.user-bar{gap:.3rem}.wordmark{font-size:1.2rem}}
