:root{--paper:#fbf3e2;--paper-2:#f6ead0;--card:#fffdf6;--ink:#3a2f28;--ink-soft:#9a8a78;--orange:#f4a32c;--orange-deep:#e08a13;--green:#74b13e;--green-deep:#5c9530;--blue:#7cb6d8;--blue-deep:#5a9bc2;--coral:#ee8a76;--shadow:#3a2f28e6;--accent:var(--blue);--accent-deep:var(--blue-deep);--accent-soft:#dcecf5;--font-hand:"Caveat", cursive;--font-label:"Patrick Hand", cursive;--font-body:"Nunito", system-ui, sans-serif;--check:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 13 L10 19 L21 4' fill='none' stroke='%23fffdf6' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/></svg>")}[data-profile=sylwia]{--accent:var(--coral);--accent-deep:#e0664f;--accent-soft:#fbe2dc}[data-profile=mateusz]{--accent:var(--blue);--accent-deep:var(--blue-deep);--accent-soft:#dcecf5}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background-color:var(--paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23n)' opacity='0.05'/></svg>"),radial-gradient(circle,#3a2f2809 1.4px,#0000 1.6px);background-size:180px 180px,22px 22px;min-height:100vh;line-height:1.45;overflow-x:hidden}.wobble{border:3px solid var(--ink);border-radius:255px 18px 225px/18px 225px 18px 255px}.wobble-2{border:3px solid var(--ink);border-radius:18px 225px 18px 255px/255px 18px 225px}.wobble-3{border:3px solid var(--ink);border-radius:200px 16px 28px 220px/24px 200px 220px 18px}.btn{font-family:var(--font-label);border:3px solid var(--ink);background:var(--card);color:var(--ink);box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:200px 16px/16px 200px;align-items:center;gap:.5rem;padding:.7rem 1.15rem;font-size:1.05rem;line-height:1;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.btn.primary{background:var(--accent)}.btn.orange{background:var(--orange)}.btn.green{background:var(--green)}.btn.block{justify-content:center;width:100%}.card{background:var(--card);border:3px solid var(--ink);box-shadow:5px 6px 0 var(--shadow);border-radius:24px 30px 22px 32px/30px 22px 32px;padding:1.05rem 1.05rem 1.1rem;position:relative}.card+.card{margin-top:1.1rem}.washi{opacity:.92;background:repeating-linear-gradient(45deg,#f4a32cd9 0 7px,#f4a32c8c 7px 14px);border-left:2px dashed #3a2f2840;border-right:2px dashed #3a2f2840;width:96px;height:26px;position:absolute;top:-13px;left:50%;translate:-50%;rotate:-3deg}.washi.green{background:repeating-linear-gradient(45deg,#74b13ed9 0 7px,#74b13e80 7px 14px)}.washi.blue{background:repeating-linear-gradient(45deg,#7cb6d8d9 0 7px,#7cb6d880 7px 14px)}.card-title{font-family:var(--font-hand);margin:.15rem 0 .9rem;font-size:1.85rem;font-weight:700;line-height:1;display:inline-block;position:relative}.card-title .squiggle{width:calc(100% + 8px);height:10px;color:var(--accent);position:absolute;bottom:-12px;left:-2px;right:-6px}.eyebrow{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);font-size:.72rem}.item{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2.5px dotted #3a2f282e;align-items:center;gap:.8rem;padding:.62rem .35rem;display:flex}.item:last-child{border-bottom:none}.check{border:3px solid var(--ink);background:var(--card);border-radius:9px 14px 8px 15px;flex:none;width:32px;height:32px;transition:background .12s,transform .12s;position:relative}.item.done .check{background:var(--green) var(--check) center/20px no-repeat;transform:rotate(-4deg)}.item .body{flex:1;min-width:0}.item .label{font-size:1rem;font-weight:700;display:inline;position:relative}.item .sub{color:var(--ink-soft);font-size:.82rem;font-weight:600}.item.done .label,.item.done .meta{color:var(--ink-soft)}.item.done .label:after{content:"";background:var(--ink);opacity:.8;border-radius:3px;height:3px;position:absolute;top:54%;left:-3px;right:-3px;rotate:-1.4deg}.item .meta{font-family:var(--font-body);white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:1.05rem;font-weight:900;line-height:1;display:flex}.item .meta small{color:var(--ink-soft);letter-spacing:.06em;font-size:.62rem;font-weight:700}button.recipe-ico{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;margin:0 .15rem;padding:.25rem;font-size:1.15rem;line-height:1}button.recipe-ico:hover{background:#0000000d}.meal-line .ml-name .recipe-ico{font-size:.95rem}.tag{font-family:var(--font-label);letter-spacing:.04em;background:var(--accent-soft);border:2px solid var(--ink);border-radius:10px 4px/4px 10px;margin-bottom:.15rem;padding:.05rem .45rem;font-size:.72rem;display:inline-block}.app-shell{max-width:480px;min-height:100dvh;margin:0 auto;position:relative}.margin-doodle{display:none}@media (min-width:1024px){.margin-doodle{z-index:0;opacity:.9;pointer-events:none;display:block;position:fixed}.margin-doodle.left{width:230px;top:90px;left:max(20px,50% - 600px)}.margin-doodle.right{width:250px;bottom:40px;right:max(20px,50% - 600px)}}header{z-index:30;background:var(--paper);border-bottom:3px solid var(--ink);padding:.55rem .9rem calc(.55rem + 6px);position:sticky;top:0;box-shadow:0 5px 0 -2px #3a2f281f}.header-row{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.logo{font-family:var(--font-hand);align-items:baseline;gap:.18rem;font-size:2.15rem;font-weight:700;line-height:.85;display:flex}.logo .dot{color:var(--orange)}.logo small{font-family:var(--font-label);color:var(--ink-soft);letter-spacing:.04em;font-size:.7rem}.switcher{background:var(--card);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);border-radius:40px;align-items:center;gap:.3rem;padding:4px;display:flex}.who{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;padding:0;transition:transform .12s;display:flex;position:relative}.who svg{width:40px;height:40px}.who[aria-pressed=true]{transform:scale(1.04)}.who[aria-pressed=true]:after{content:"";border:3px solid var(--accent-deep);border-radius:50%;position:absolute;inset:-3px}.who[aria-pressed=true]{background:var(--accent-soft)}.who .name{font-family:var(--font-label);white-space:nowrap;color:var(--ink-soft);font-size:.6rem;position:absolute;bottom:-16px;left:50%;translate:-50%}.header-actions{align-items:center;gap:.5rem;display:flex}.logout{cursor:pointer;font-family:var(--font-label);color:var(--ink-soft);background:0 0;border:none;padding:.2rem .3rem;font-size:.72rem;line-height:1}.logout:hover{color:var(--coral)}main{z-index:1;padding:1.05rem .9rem 7rem;position:relative}.screen{display:none}.screen.active{animation:.3s pop;display:block}@keyframes pop{0%{transform:translateY(12px)}to{transform:none}}.greet{font-family:var(--font-hand);margin:.1rem 0 .15rem;font-size:2.3rem;font-weight:700;line-height:.95}.greet-sub{font-family:var(--font-label);color:var(--ink-soft);margin-bottom:1rem;font-size:1.02rem}.kcal-card{background:var(--accent-soft);background-image:radial-gradient(circle at 0 0,#ffffff80 0 40%,#0000 41%)}.kcal-top{justify-content:space-between;align-items:flex-end;gap:.6rem;margin-bottom:.7rem;display:flex}.kcal-big{letter-spacing:-.02em;font-size:3rem;font-weight:900;line-height:.85}.kcal-big span{color:var(--ink-soft);font-size:1rem;font-weight:800}.kcal-side{text-align:right;font-size:.95rem;font-weight:800}.kcal-side b{color:var(--accent-deep);font-size:1.45rem;display:block}.bar{background:var(--card);border:3px solid var(--ink);border-radius:40px;height:22px;position:relative;overflow:hidden}.bar-fill{background:var(--accent);border-right:3px solid var(--ink);background-image:repeating-linear-gradient(45deg,#ffffff40 0 8px,#0000 8px 16px);border-radius:40px 0 0 40px;height:100%;transition:width .5s cubic-bezier(.5,1.6,.4,1)}.bar-fill.over{background:var(--orange)}.kcal-note{font-family:var(--font-label);color:var(--ink);margin-top:.55rem;font-size:.92rem}.burn-chip{background:var(--green);color:var(--ink);border:3px solid var(--ink);box-shadow:2px 2px 0 var(--shadow);border-radius:14px 6px/6px 14px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.95rem;font-weight:900;display:inline-flex}.mascot-row{align-items:center;gap:.7rem;margin-bottom:.35rem;display:flex}.mascot-row svg{flex:none;width:60px;height:60px}.mascot-bubble{font-family:var(--font-label);background:var(--paper-2);border:2.5px solid var(--ink);border-radius:16px 16px 16px 4px;padding:.4rem .7rem;font-size:.95rem;position:relative}.day{margin-bottom:1rem}details.day{background:var(--card);border:3px solid var(--ink);box-shadow:4px 5px 0 var(--shadow);border-radius:22px 26px 20px 28px/26px 20px 28px;overflow:hidden}details.day summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.6rem;padding:.85rem 1rem;list-style:none;display:flex}details.day summary::-webkit-details-marker{display:none}.day-name{font-family:var(--font-hand);align-items:center;gap:.5rem;font-size:1.7rem;font-weight:700;line-height:.9;display:flex}.day-name .chev{font-family:var(--font-body);color:var(--accent-deep);font-size:1.1rem;font-weight:900;transition:transform .2s}details[open].day summary .chev{transform:rotate(180deg)}.day-kcal{text-align:right;font-size:1.25rem;font-weight:900;line-height:1}.day-kcal small{font-family:var(--font-label);color:var(--ink-soft);font-size:.62rem;font-weight:400;display:block}.day-today{font-family:var(--font-label);background:var(--orange);border:2px solid var(--ink);vertical-align:middle;border-radius:8px;margin-left:.35rem;padding:.05rem .4rem;font-size:.6rem}.day-body{border-top:2.5px dotted #3a2f2833;padding:0 1rem 1rem}.meal-line{border-bottom:2px dotted #3a2f2821;align-items:baseline;gap:.6rem;padding:.5rem .1rem;display:flex}.meal-line:last-child{border-bottom:none}.meal-line .ml-tag{flex:none;width:78px}.meal-line .ml-name{flex:1;font-weight:700}.meal-line .ml-name i{color:var(--ink-soft);font-size:.8rem;font-style:normal;font-weight:600;display:block}.meal-line .ml-kcal{white-space:nowrap;font-weight:900}.list-actions{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.list-actions .btn{flex:1;padding:.65rem .5rem;font-size:.96rem}.shared-note{font-family:var(--font-label);color:var(--ink-soft);align-items:center;gap:.5rem;margin-bottom:.9rem;font-size:.92rem;display:flex}.shared-note .mini{display:flex}.shared-note .mini svg{background:var(--card);border:2.5px solid var(--ink);border-radius:50%;width:30px;height:30px;margin-left:-8px}.cat{margin-bottom:1rem}.cat-head{font-family:var(--font-hand);align-items:center;gap:.5rem;margin:.2rem 0 .3rem;font-size:1.5rem;font-weight:700;line-height:1;display:flex}.cat-head .emo{font-size:1.2rem}.cat-head .count{font-family:var(--font-label);color:var(--ink-soft);background:var(--paper-2);border:2px solid var(--ink);border-radius:10px;padding:.02rem .4rem;font-size:.7rem}.add-row{gap:.5rem;margin-top:.5rem;display:flex}.add-row input{font-family:var(--font-body);border:3px solid var(--ink);background:var(--card);color:var(--ink);border-radius:14px 8px/8px 14px;flex:1;min-width:0;padding:.55rem .7rem;font-size:1rem;font-weight:700}.add-row input:focus{border-color:var(--accent-deep);background:var(--accent-soft);outline:none}.del{cursor:pointer;color:var(--ink-soft);font-size:1.2rem;line-height:1;font-family:var(--font-body);background:0 0;border:none;flex:none;margin-left:.4rem;padding:.2rem .3rem}.del:hover{color:var(--coral)}.empty{text-align:center;color:var(--ink-soft);padding:1.5rem 1rem}.empty svg{width:120px;height:120px}.empty p{font-family:var(--font-hand);color:var(--ink);margin:.3rem 0 0;font-size:1.7rem}nav.tabs{z-index:40;background:var(--paper);border-top:3px solid var(--ink);max-width:480px;padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -5px 0 -2px #3a2f281a}.tab{cursor:pointer;min-height:56px;font-family:var(--font-label);color:var(--ink-soft);background:0 0;border:none;border-radius:18px;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.5rem .2rem;font-size:.82rem;text-decoration:none;transition:transform .1s;display:flex}.tab .ico{font-size:1.5rem;line-height:1;transition:transform .15s}.tab[aria-pressed=true]{color:var(--ink)}.tab[aria-pressed=true] .ico{transform:scale(1.18)rotate(-6deg)}.tab[aria-pressed=true]{background:var(--accent-soft);border:3px solid var(--ink);box-shadow:2px 2px 0 var(--shadow);padding:.38rem .2rem}.login{text-align:center;z-index:2;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex;position:relative}.login-card{background:var(--card);border:3px solid var(--ink);box-shadow:7px 8px 0 var(--shadow);border-radius:30px 34px 28px 36px/34px 28px 36px;width:100%;max-width:380px;padding:1.6rem 1.4rem 1.7rem;position:relative}.login-mascots{justify-content:center;gap:-10px;margin-bottom:.2rem;display:flex}.login-mascots svg{width:110px;height:130px}.login-mascots svg:first-child{margin-right:-22px;rotate:-5deg}.login-mascots svg:last-child{margin-left:-22px;rotate:5deg}.login .logo{justify-content:center;margin:.2rem 0 0;font-size:3.4rem}.login-tag{font-family:var(--font-label);color:var(--ink-soft);margin:.1rem 0 1.2rem;font-size:1.05rem}.pass-wrap{margin-bottom:.9rem;position:relative}.pass-wrap input{width:100%;font-family:var(--font-body);text-align:center;border:3px solid var(--ink);background:var(--paper);color:var(--ink);letter-spacing:.06em;border-radius:200px 16px/16px 200px;padding:.85rem 2.6rem .85rem 1rem;font-size:1.15rem;font-weight:800}.pass-wrap input:focus{border-color:var(--accent-deep);background:var(--accent-soft);outline:none}.eye{cursor:pointer;background:0 0;border:none;padding:.3rem;font-size:1.2rem;position:absolute;top:50%;right:.6rem;translate:0 -50%}.hint{font-family:var(--font-label);color:var(--ink-soft);margin-top:.9rem;font-size:.82rem}.shake{animation:.4s shake}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.deco{pointer-events:none;position:absolute}.toast{z-index:60;background:var(--ink);color:var(--paper);font-family:var(--font-label);opacity:0;border-radius:14px;padding:.55rem 1rem;font-size:.95rem;transition:opacity .2s,transform .2s;position:fixed;bottom:88px;left:50%;translate:-50%;box-shadow:3px 3px #0003}.toast.show{opacity:1;transform:translate(-50%,-6px)}.recipe-overlay{z-index:80;background:#3a2f2880;justify-content:center;align-items:flex-end;padding:0;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.recipe-sheet{width:100%;max-width:480px;max-height:88vh;box-shadow:0 -6px 0 var(--shadow);border-radius:26px 30px 0 0/28px 26px 0 0;animation:.28s cubic-bezier(.4,1.3,.5,1) sheet;overflow-y:auto}@keyframes sheet{0%{transform:translateY(40px)}to{transform:none}}.recipe-close{border:3px solid var(--ink);background:var(--card);width:36px;height:36px;color:var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--shadow);border-radius:9px 14px 8px 15px;flex:none;font-size:1.05rem;font-weight:900;line-height:1;position:absolute;top:.7rem;right:.8rem}.recipe-close:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.recipe-ings{margin:.3rem 0 .2rem;padding-left:1.2rem;font-weight:600}.recipe-ings li{padding:.1rem 0}.week-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.week-tabs .btn{flex:1;justify-content:center;min-width:64px;padding:.55rem .4rem;font-size:.95rem}.recipe-grid{grid-template-columns:1fr;gap:1.1rem;display:grid}.recipe-card{cursor:pointer}.recipe-card .card-title{margin-bottom:.5rem;font-size:1.5rem}.recipe-meta{font-family:var(--font-label);color:var(--ink-soft);font-size:.95rem}.day-meta{font-family:var(--font-label);color:var(--ink-soft);margin-bottom:.5rem;font-size:.92rem}.day-progress{font-family:var(--font-label);color:var(--ink-soft);background:var(--paper-2);border:2px solid var(--ink);float:right;border-radius:10px;padding:.02rem .45rem;font-size:.7rem}.ml-name.has-recipe{cursor:pointer;color:var(--accent-deep);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}@media (min-width:481px){.app-shell{box-shadow:0 0 0 3px var(--ink), 14px 16px 0 #3a2f282e;border-radius:0;min-height:auto;margin-top:18px;margin-bottom:18px}}
