:root{--rich-clay: #B77466;--soft-cream: #FFE1AF;--warm-beige: #E2B59A;--earthy-brown: #957C62;--gold: #FFD56B;--teal: #0F766E;--text: #2b2b2b;--bg: #fffaf3;--panel: #fff7ec;--shadow: rgba(15,118,110,.15)}:root.dark{--bg: #12100e;--text: #f6f0ea;--panel: #1b1714;--shadow: rgba(255,213,107,.1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,Arial;background:radial-gradient(1200px 800px at 80% -10%,rgba(255,213,107,.12),transparent 60%),radial-gradient(800px 600px at -10% 20%,rgba(15,118,110,.12),transparent 60%),var(--bg);color:var(--text);transition:background .3s ease,color .3s ease}.page-blur{transition:filter .18s ease}:root.menu-open .page-blur{filter:blur(8px) saturate(115%)}.nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid rgba(0,0,0,.05);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(90deg,#ffe1afd9,#e2b59ad9)}.nav .brand{display:flex;align-items:center;gap:8px;color:var(--earthy-brown);font-weight:900;text-decoration:none;font-size:1.3rem;letter-spacing:.3px}.desktop-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav a{color:var(--earthy-brown);text-decoration:none;font-weight:600;opacity:.9;white-space:nowrap}.nav a:hover{opacity:1;text-shadow:0 0 12px rgba(149,124,98,.3)}.nav button{background:linear-gradient(135deg,var(--teal),#115e59);color:#fff;border:none;border-radius:10px;padding:8px 12px;cursor:pointer;box-shadow:0 8px 20px var(--shadow)}.hamburger-btn{display:none}.icon-btn{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0}.theme-toggle{background:linear-gradient(135deg,var(--earthy-brown),#6e5641)}.mobile-overlay{position:fixed;inset:0;background:#00000073;z-index:40;backdrop-filter:blur(8px) saturate(110%);-webkit-backdrop-filter:blur(8px) saturate(110%)}.mobile-menu{position:fixed;top:0;right:0;height:100%;width:82%;max-width:360px;background:var(--panel);z-index:41;box-shadow:-16px 0 40px var(--shadow);display:flex;flex-direction:column}.mobile-menu-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.mobile-menu-body{display:flex;flex-direction:column;gap:12px;padding:16px}.mobile-menu a{color:var(--earthy-brown);text-decoration:none;font-weight:700;display:flex;gap:10px;align-items:center}@media(max-width:768px){.desktop-nav{display:none}.hamburger-btn{display:inline-flex;background:linear-gradient(135deg,var(--teal),#115e59)}}@media(max-width:480px){.nav{padding:10px 14px}.nav .brand{font-size:1.05rem}.desktop-nav{gap:8px}.btn{padding:8px 10px}}@media(max-width:600px){.modal-backdrop{padding:10px}.modal-content{max-width:96vw;width:96vw}}.container{max-width:1200px;margin:0 auto;padding:24px}.card{background:var(--panel);border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:18px;box-shadow:0 10px 30px var(--shadow);overflow-wrap:anywhere}.btn{background:linear-gradient(135deg,var(--gold),#f1b84a);color:#3a2b1a;border:none;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:700;box-shadow:0 8px 20px var(--shadow);display:inline-flex;align-items:center;gap:8px;text-decoration:none}.btn.teal{background:linear-gradient(135deg,var(--teal),#115e59);color:#fff}.input{padding:10px 12px;border:1px solid rgba(0,0,0,.08);border-radius:10px;width:100%;background:#fff;outline:none;box-shadow:inset 0 1px #00000008}.label{font-weight:700;color:var(--earthy-brown)}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:768px){.container{padding:16px}.card{padding:14px}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.calendar{min-width:520px}}@media(max-width:480px){.calendar{grid-template-columns:repeat(4,1fr);min-width:440px}.day{padding:6px}.day h4{font-size:.8rem}.chip{padding:5px 8px}.chip .txt{display:none}}@media(max-width:360px){.calendar{grid-template-columns:repeat(3,1fr);min-width:360px}}.hero{position:relative;min-height:80vh;display:grid;place-items:center;overflow:hidden;border-radius:20px;padding:40px;background:linear-gradient(180deg,#ffe1af99,#e2b59a59);box-shadow:0 20px 60px var(--shadow)}.hero h1{font-size:clamp(2rem,4vw,4rem);line-height:1.05;margin:0;color:#573d2d;text-shadow:0 6px 30px rgba(0,0,0,.08)}.hero p{font-size:clamp(1rem,1.6vw,1.25rem);opacity:.9}.hero .actions{display:flex;gap:12px;margin-top:16px}.steam-wrap{position:absolute;inset:0;pointer-events:none;overflow:hidden}.steam{position:absolute;bottom:-40px;left:50%;width:140px;height:140px;background:radial-gradient(closest-side,#fff9,#fff0);filter:blur(8px);opacity:.6;border-radius:50%;animation:rise 10s infinite ease-in}.steam.s2{left:30%;width:110px;height:110px;animation-duration:12s;animation-delay:1s}.steam.s3{left:70%;width:90px;height:90px;animation-duration:9s;animation-delay:2s}@keyframes rise{0%{transform:translate(-50%,20px) scale(.9);opacity:0}10%{opacity:.5}60%{opacity:.4}to{transform:translate(-50%,-90vh) scale(1.4);opacity:0}}.tiles{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tile{background:linear-gradient(180deg,#ffffffb3,#fffffff2);border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:16px;box-shadow:0 12px 28px var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.tile:hover{transform:translateY(-4px);box-shadow:0 18px 40px var(--shadow)}.tile h3{margin:0 0 8px;color:#4b382a}.tile p{margin:0;opacity:.9}:root.dark .tile,:root.dark .tile h3,:root.dark .tile p{color:#fff}:root.dark .glass,:root.dark .glass h1,:root.dark .glass h2,:root.dark .glass h3,:root.dark .glass h4,:root.dark .glass p{color:#fff}:root.dark .tile a,:root.dark .glass a{color:#fff}:root.dark .card p,:root.dark .badge,:root.dark .hint,:root.dark .table td,:root.dark .desc{color:#fff}:root.dark .card a{color:#fff}.calendar-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;min-width:560px}.day{position:relative;border:1px solid var(--warm-beige);border-radius:10px;padding:8px;background:#fff;box-shadow:0 4px 12px var(--shadow);transition:box-shadow .2s ease,transform .15s ease}.day h4{margin:0 0 6px;font-size:.9rem;color:var(--earthy-brown)}.badge{display:inline-block;padding:2px 6px;border-radius:999px;background:var(--soft-cream);margin-right:6px}.table{width:100%;border-collapse:collapse}.table th,.table td{border:1px solid var(--warm-beige);padding:8px}.table th{background:var(--soft-cream)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.table.wide{min-width:720px}.glass{background:linear-gradient(180deg,#fff9,#ffffffe6);border:1px solid rgba(255,255,255,.6);box-shadow:0 18px 50px var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.pill{border-radius:999px}.modal-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-content{width:100%;max-width:520px;border-radius:16px;background:var(--panel);box-shadow:0 18px 50px var(--shadow);border:1px solid rgba(0,0,0,.06);max-height:92vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.modal-body{padding:16px;overflow:auto}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:0 16px 16px;border-top:1px solid rgba(0,0,0,.06)}.bar{height:10px;border-radius:999px;background:#00000014;overflow:hidden}.bar>.fill{height:100%;background:linear-gradient(135deg,var(--teal),#115e59);border-radius:999px}.day.with-b{box-shadow:0 0 0 2px #ffd56b66,0 10px 24px #ffd56b2e,0 4px 12px var(--shadow)}.day.with-d{box-shadow:0 0 0 2px #0f766e59,0 10px 24px #0f766e29,0 4px 12px var(--shadow)}.day.with-b.with-d{box-shadow:0 0 0 2px #ffd56b61,0 0 0 6px #0f766e2e,0 14px 28px #0f766e2e}.meal-toggles{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.chip{border-radius:999px;padding:6px 10px;border:1px solid rgba(0,0,0,.08);font-weight:700;cursor:pointer;box-shadow:0 4px 10px var(--shadow);background:#fff;display:inline-flex;align-items:center;gap:6px}.chip.b.on{background:linear-gradient(135deg,var(--gold),#f1b84a);color:#3a2b1a}.chip.d.on{background:linear-gradient(135deg,var(--teal),#115e59);color:#fff}.chip.off{opacity:.8}.hint{position:absolute;right:8px;top:8px;font-size:.75rem;background:#0000008c;color:#fff;padding:4px 8px;border-radius:999px;opacity:0;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease}.day:hover .hint{opacity:1;transform:translateY(0)}.site-footer{margin-top:24px;padding:18px 20px;border-top:1px solid rgba(0,0,0,.06);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:linear-gradient(180deg,#fff9,#ffffffd9);border-radius:16px 16px 0 0}.site-footer .left{font-weight:700;color:var(--earthy-brown)}.site-footer .socials{display:flex;align-items:center;gap:12px}.site-footer .socials a{display:inline-flex;align-items:center;gap:8px;color:var(--earthy-brown);text-decoration:none;font-weight:700}:root.dark .site-footer{background:linear-gradient(180deg,#1b1714cc,#1b1714f2);border-top-color:#ffffff1f}:root.dark .site-footer,:root.dark .site-footer .left,:root.dark .site-footer .socials a{color:#fff}@media(max-width:768px),(prefers-reduced-motion:reduce){body{background:var(--bg)}.page-blur{filter:none!important}.nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--panel)}.mobile-overlay{backdrop-filter:none;-webkit-backdrop-filter:none;background:#00000059}.glass{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 6px 16px var(--shadow)}.card,.tile,.day{box-shadow:0 4px 12px var(--shadow)}.hero{box-shadow:0 10px 24px var(--shadow)}.steam-wrap{display:none}}.card,.tile,.calendar,.mobile-menu{contain:content}.chart-wrap{contain:none}
