@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#243f34;--muted:#7b8178;--bg:#f8f7f2;--line:#e3e5db;--accent:#d86e45}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:15px 'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d86e45;outline-offset:3px}header{height:92px;padding:0 5%;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px;background:#fffefa}.brand{color:var(--ink);font-weight:700;font-size:23px;text-decoration:none;white-space:nowrap}.logo{font-size:33px;margin-right:8px}.brand-dot{color:var(--accent)}nav{display:flex;gap:8px;margin:auto}nav button{border:0;background:none;padding:12px 18px;border-radius:30px;color:#7b8178}nav button.active{background:#e9eee5;color:var(--ink)}#bag-count{background:#dce5d4;padding:2px 6px;border-radius:6px;font-size:11px;margin-left:5px}.profile{background:transparent;border:1px solid var(--line);padding:7px 14px 7px 7px;border-radius:30px;display:flex;align-items:center;gap:9px}.avatar{width:32px;height:32px;border-radius:50%;background:#eadfce;display:inline-grid;place-items:center;font-size:22px}main{max-width:1280px;margin:auto;padding:48px 36px 60px}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:700;color:#8a927c}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1{font:64px/.99 'Libre Caslon Display',Georgia,serif;letter-spacing:-1.7px;margin:19px 0}h1 em{font-style:normal;color:#8b9c73}.intro p{color:#7c8177;font-size:14px;margin:19px 0}.family{text-align:right;display:grid;gap:8px}.faces{display:flex;justify-content:flex-end;margin-bottom:7px}.faces span{background:#e8e6d8;border:3px solid var(--bg);border-radius:50%;width:43px;height:43px;display:grid;place-items:center;font-size:28px;margin-left:-7px}.family b{font-size:13px}.family small{color:var(--muted);font-size:12px}.demo{border:1px solid #e8e3ce;background:#f1eedf;border-radius:10px;padding:11px 16px;font-size:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;color:#777350}.demo button{background:none;border:0;font-size:12px}.days{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.day{border:1px solid var(--line);background:#fffefa;border-radius:12px;text-align:left;padding:17px 18px;position:relative;min-height:117px}.day.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.day .weekday{font-size:12px;opacity:.75;display:block}.day .date{font:31px 'Libre Caslon Display',Georgia,serif;display:block;margin:5px 0 10px}.day .state{font-size:10px;color:#6d8063;background:#eef0e6;padding:4px 7px;border-radius:5px}.day.selected .state{background:#446050;color:#d5e0c6}.day .state.lock{color:#92846e;background:#f0ede6}.selected:after{content:'•';position:absolute;right:16px;top:13px;color:#d9e4c6}.section-head{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;gap:15px}h2{font:32px 'Libre Caslon Display',Georgia,serif;margin:0 0 7px}.subtitle{font-size:12px;color:var(--muted)}.primary{border:0;background:var(--ink);color:white;border-radius:8px;padding:12px 17px;font-size:12px}.secondary{border:1px solid var(--line);background:#fffefa;border-radius:8px;padding:11px 15px;font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;align-content:start}.card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fffefa}.food{height:155px;background:var(--food-bg,#e9e6dc);display:grid;place-items:center;position:relative;overflow:hidden}.food .plate{display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#fffdf5 57%,#f1f0e6 59%,white 62%,#f3f1e7 68%,transparent 69%);height:165px;width:195px;font-size:84px;filter:drop-shadow(0px 9px 8px #0002);transform:rotate(-12deg)}.food .tag{position:absolute;left:13px;top:12px;background:#fffef2e8;font-size:9px;border-radius:5px;padding:5px 8px;letter-spacing:.3px}.card-body{padding:17px}.card h3{font-size:17px;margin:0 0 7px;font-weight:600}.card .meta{color:var(--muted);font-size:11px;display:flex;justify-content:space-between}.recipe-title{background:transparent;border:0;text-align:left;padding:0}.votes{display:flex;gap:6px;margin-top:16px}.vote{flex:1;border:1px solid var(--line);background:#f8f8f2;border-radius:7px;padding:9px 3px;font-size:11px}.vote.chosen{background:#e5eddd;border-color:#94aa83}.score{display:flex;justify-content:space-between;margin-top:13px;font-size:10px;color:var(--muted)}aside{background:#eeeFE6;border-radius:13px;padding:22px;align-self:start}aside h3{font:25px 'Libre Caslon Display',Georgia,serif;margin:0 0 10px}aside p{font-size:12px;color:#76806e;line-height:1.7}.people{border-top:1px solid #dce1d2;margin-top:16px;padding-top:10px}.person{display:flex;align-items:center;gap:9px;font-size:12px;margin:13px 0}.person small{margin-left:auto;color:#808b75;font-size:10px}.notice{padding:14px 16px;border:1px solid var(--line);border-radius:9px;font-size:12px;margin-bottom:20px;background:#f0f2e8}.empty{padding:45px;text-align:center;border:1px dashed #b9c5af;border-radius:14px;grid-column:1/-1}.toolbar{display:flex;gap:10px;margin-bottom:20px}.toolbar input{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffefa;flex:1;min-width:0}.toolbar select{border:1px solid var(--line);border-radius:8px;padding:10px;background:white}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.shopping{max-width:740px}.shopping label{display:flex;gap:12px;align-items:center;background:#fffefa;border-bottom:1px solid var(--line);padding:15px}.shopping input:checked+span{text-decoration:line-through;color:var(--muted)}.shopping input{accent-color:var(--ink)}footer{max-width:1208px;margin:0 auto;padding:25px 0;border-top:1px solid var(--line);color:#929986;font:17px 'Libre Caslon Display',Georgia,serif;display:flex;justify-content:space-between}footer span{font:9px 'DM Sans',sans-serif;letter-spacing:1.4px}dialog{border:0;background:var(--bg);border-radius:18px;padding:34px;width:min(790px,94vw);max-height:88vh;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#1c302b88;backdrop-filter:blur(3px)}.close{position:absolute;right:15px;top:12px;font-size:25px;background:none;border:0}.modal-list{display:grid;gap:9px}.pick{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fffefa;padding:12px;text-align:left}.pick span:first-child{font-size:35px}.pick small{display:block;color:var(--muted);margin-top:4px}.pick b{font-weight:500}.pick .plus{margin-left:auto;font-size:20px}.detail p,.detail li{line-height:1.8;font-size:14px}.detail h3{margin-top:25px}.profiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profiles button{border:1px solid var(--line);background:#fffefa;padding:22px;border-radius:12px;font-size:16px}.profiles span{display:block;font-size:40px;margin-bottom:9px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:14px 22px;z-index:9;opacity:0;pointer-events:none;transition:.2s;font-size:13px}#toast.show{opacity:1}.small-link{border:0;background:none;text-decoration:underline;font-size:11px;color:#737d6b;padding:10px 0}.collection-note{padding:16px;border-radius:10px;background:#eeefe5;color:#748069;font-size:12px;margin-top:25px}@media(min-width:1250px){.food{height:180px}}@media(max-width:850px){header{height:auto;min-height:80px;flex-wrap:wrap;padding:18px 22px;gap:14px}.brand{font-size:21px}nav{order:3;width:100%;justify-content:center}nav button{font-size:12px;padding:9px 12px}.profile{margin-left:auto}main{padding:30px 20px}h1{font-size:52px}.family{display:none}.layout{grid-template-columns:1fr}aside{display:none}.days{gap:7px}.day{padding:13px 10px}.day .date{font-size:27px}.day .state{font-size:8px;padding:4px}.recipe-grid{grid-template-columns:repeat(2,1fr)}footer{margin:0 20px}footer span{display:none}}@media(max-width:480px){h1{font-size:46px}.intro p{font-size:12px;line-height:1.6}.demo{font-size:10px;padding:11px}.demo button{display:none}.day{min-height:106px;padding:12px 6px}.day .weekday{font-size:10px}.day .date{font-size:23px}.day .state{font-size:7px}.cards{gap:10px}.food{height:124px}.food .plate{font-size:65px;height:135px;width:150px}.card-body{padding:12px}.card h3{font-size:14px}.vote{font-size:0;padding:9px 1px}.vote .emoji{font-size:19px}.card .meta{font-size:9px}.score{font-size:8px}.section-head h2{font-size:28px}.primary{padding:11px;font-size:10px}.food .tag{font-size:8px;left:8px;top:8px}.toolbar{flex-wrap:wrap}.recipe-grid{gap:10px}}

[hidden]{display:none!important}.login-panel{max-width:470px;background:#fffefa;border:1px solid var(--line);padding:28px;border-radius:14px;margin:24px auto}.login-panel form,.login-panel label{display:grid;gap:10px}.login-panel form{gap:20px;margin-top:24px}.login-panel label{font-size:12px}.login-panel input,.login-panel select{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font:inherit}#login-error{color:#a34d30;font-size:12px;margin:0}
