@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/baloo2-500.woff2) format("woff2")}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/baloo2-700.woff2) format("woff2")}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/baloo2-800.woff2) format("woff2")}:root{--radius:22px;--shadow:0 6px 18px rgba(30,41,59,.08)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:"Baloo 2",Trebuchet MS,Segoe UI,sans-serif;color:#1e293b;min-height:100svh;overflow-x:hidden;background:#f8f0dd}body[data-season=hiver]{--bg1:#dbeafe;--bg2:#ede9fe;--accent:#6366f1;--accent2:#8b5cf6;--accent-soft:#e0e7ff}body[data-season=printemps]{--bg1:#dcfce7;--bg2:#fef9c3;--accent:#22c55e;--accent2:#14b8a6;--accent-soft:#dcfce7}body[data-season=ete]{--bg1:#fef3c7;--bg2:#ffedd5;--accent:#f59e0b;--accent2:#ef4444;--accent-soft:#fef3c7}body[data-season=automne]{--bg1:#ffedd5;--bg2:#fee2e2;--accent:#ea580c;--accent2:#d97706;--accent-soft:#ffedd5}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(160deg,var(--bg1),var(--bg2))}body.modal-open{overflow:hidden}.bg-emojis{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-emojis span{position:absolute;opacity:.16;animation:floaty 6s ease-in-out infinite alternate;will-change:transform}@keyframes floaty{0%{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-26px) rotate(10deg)}}.app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:14px 14px 48px}header{text-align:center;padding:10px 0 6px}header h1{font-size:clamp(1.5rem,6vw,2rem);font-weight:800;display:inline-block;transform:rotate(-2deg)}header h1 span{display:inline-block;animation:wobble 3s ease-in-out infinite}@keyframes wobble{0%,to{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.12)}}header p{font-size:.95rem;opacity:.65;font-weight:600}.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 2px;position:sticky;top:0;z-index:20;background:#ffffff8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:0 0 var(--radius) var(--radius);scrollbar-width:none;overscroll-behavior-x:contain}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;border:none;cursor:pointer;font:inherit;font-weight:700;font-size:.95rem;padding:9px 16px;border-radius:999px;background:#fff;color:#334155;box-shadow:var(--shadow);transition:transform .15s,background .2s,color .2s}.chip:active{transform:scale(.92)}.chip.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;transform:scale(1.08) rotate(-3deg)}.chip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hero{margin-top:14px;position:relative;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:var(--radius);padding:22px 10px;color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 35%,transparent);overflow:hidden}.hero-center{flex:1;text-align:center;position:relative;z-index:1}.month-block{animation:pop .35s ease}@keyframes pop{0%{transform:scale(.9);opacity:.3}to{transform:scale(1);opacity:1}}.month-name{font-size:clamp(2rem,9vw,2.9rem);font-weight:800;line-height:1.05}.season-pill{display:inline-block;font-size:.85rem;font-weight:700;background:#ffffff38;border:1px solid rgba(255,255,255,.45);padding:4px 14px;border-radius:999px;margin-bottom:6px}.star{margin-top:10px;display:inline-block;font-size:.9rem;font-weight:700;background:#ffffffeb;color:#334155;padding:7px 16px;border-radius:999px;box-shadow:0 3px 10px #0000001f;animation:starPulse 2.4s ease-in-out infinite}@keyframes starPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05) rotate(-1.5deg)}}.hero-emoji{position:absolute;right:-10px;bottom:-18px;font-size:5rem;opacity:.28;transform:rotate(-12deg);pointer-events:none;-webkit-user-select:none;user-select:none}.nav{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:#ffffff2e;color:#fff;font-size:1.25rem;font-weight:800;cursor:pointer;transition:transform .15s,background .2s;z-index:1}@media(hover:hover){.nav:hover{background:#ffffff52}}.nav:active{transform:scale(.85)}.nav:focus-visible{outline:3px solid #fff;outline-offset:2px}.swipe-hint{text-align:center;font-size:.8rem;opacity:.55;margin-top:8px;font-weight:600}.today-btn{display:none;margin-top:10px;border:none;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;color:var(--accent);background:#ffffffeb;padding:5px 14px;border-radius:999px}.today-btn.show{display:inline-block}main{animation:pop .35s ease}.counts{text-align:center;font-size:.9rem;font-weight:700;opacity:.6;margin:18px 0 4px}section h2{font-size:1.15rem;font-weight:800;margin:16px 2px 10px;display:inline-block;position:relative}section h2:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));opacity:.55}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.card{background:#ffffffd9;border:1px solid #fff;border-radius:18px;padding:14px 6px;text-align:center;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,box-shadow .18s;animation:pop .4s ease backwards}@media(hover:hover){.card:hover{transform:translateY(-4px) rotate(-1.5deg);box-shadow:0 10px 22px #1e293b1f}}.card .e{font-size:2rem;display:block;margin-bottom:4px}.card .n{font-size:.82rem;font-weight:700;color:#334155;line-height:1.2}.card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.tip{margin-top:22px;background:#fff;border:2px dashed var(--accent);border-radius:18px;padding:14px 16px;font-size:.92rem;font-weight:600;text-align:center;box-shadow:var(--shadow)}footer{text-align:center;margin-top:26px;font-size:.8rem;font-weight:600}.foot-txt{margin:0;opacity:.6}.foot-ctl{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px}.overlay{position:fixed;inset:0;z-index:60;background:#0f172a73;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center}.modal{position:relative;width:100%;max-width:560px;max-height:88svh;overflow:hidden;background:#fff;border-radius:26px 26px 0 0;box-shadow:0 -12px 40px #0f172a47}.modal:focus{outline:none}.modal-scroll{max-height:88svh;overflow-y:auto;border-top:20px solid transparent;border-bottom:20px solid transparent;padding:4px 20px 12px;scrollbar-width:thin;scrollbar-color:#c9c2b2 transparent;scrollbar-gutter:stable;overscroll-behavior:contain}.modal-scroll::-webkit-scrollbar{width:6px}.modal-scroll::-webkit-scrollbar-track{background:transparent}.modal-scroll::-webkit-scrollbar-thumb{background:#cdc6b5;border-radius:99px;border:2px solid transparent;background-clip:padding-box}@media(hover:hover){.modal-scroll::-webkit-scrollbar-thumb:hover{background:#b0a890;background-clip:padding-box}}.close{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:none;background:#f1f5f9;font:inherit;font-size:1rem;font-weight:800;color:#475569;cursor:pointer;z-index:2;transition:transform .2s}@media(hover:hover){.close:hover{transform:rotate(90deg) scale(1.1)}}.close:active{transform:scale(.85)}.m-head{display:flex;align-items:center;gap:14px;padding-right:34px}.m-emoji-wrap{position:relative;flex:0 0 auto}.m-emoji-wrap:before{content:"";position:absolute;inset:-12px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 72%);animation:glow 1.8s ease-in-out infinite}@keyframes glow{0%,to{transform:scale(.85);opacity:.6}50%{transform:scale(1.15);opacity:1}}.m-emoji{display:inline-block;font-size:3.2rem;animation:wiggle .6s cubic-bezier(.34,1.56,.64,1)}@keyframes wiggle{0%{transform:rotate(-14deg) scale(.4)}60%{transform:rotate(8deg) scale(1.18)}to{transform:rotate(0) scale(1)}}.m-cat{display:inline-block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 10px;border-radius:999px;margin-bottom:2px}.m-cat.veg{background:#dcfce7;color:#15803d}.m-cat.fruit{background:#ffe4e6;color:#be123c}.m-name{font-size:1.5rem;font-weight:800;line-height:1.1}.m-meta{font-size:.8rem;font-weight:700;opacity:.6;margin-top:2px}.m-cal{margin-top:16px;background:#f8fafc;border-radius:16px;padding:12px 12px 10px}.m-strip{display:flex;gap:4px}.m-cell{flex:1;aspect-ratio:1;min-width:0;max-width:34px;border-radius:9px;background:#e2e8f0;color:#475569;font-weight:800;font-size:.72rem;display:flex;align-items:center;justify-content:center;transition:transform .15s}@media(hover:hover){.m-cell:hover{transform:scale(1.18)}}.m-cell.ms{background:#22c55e;color:#fff}.m-cell.mh{background:#f59e0b;color:#fff}.m-cell.mb{background:linear-gradient(135deg,#22c55e 50%,#f59e0b 50%);color:#fff}.m-cell.now{box-shadow:0 0 0 3px var(--accent)}.m-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px;font-size:.72rem;font-weight:700;color:#475569}.lg{width:12px;height:12px;border-radius:4px;display:inline-block;background:#e2e8f0}.lg-s{background:#22c55e}.lg-h{background:#f59e0b}.lg-n{box-shadow:0 0 0 2px var(--accent)}.m-rows{margin-top:6px}.m-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;margin-top:10px;background:#f8fafc}.m-row.tip{background:var(--accent-soft)}.m-row.fun{background:#fffbeb}.m-row .ic{font-size:1.45rem;line-height:1.25}.m-row b{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;opacity:.5;margin-bottom:3px}.m-row p{font-size:.95rem;font-weight:600;color:#1e293b;line-height:1.35}.basket-btn{display:inline-block;margin-top:10px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:800;color:var(--accent);background:#fff;border:2px solid var(--accent);padding:8px 18px;border-radius:999px;box-shadow:var(--shadow);transition:transform .15s,background .2s}@media(hover:hover){.basket-btn:hover{transform:translateY(-2px) rotate(-1deg);background:var(--accent-soft)}}.basket-btn:active{transform:scale(.94)}.lang{display:inline-flex;padding:3px;gap:2px;background:#fff;border-radius:999px;box-shadow:var(--shadow)}.lang-btn{border:none;cursor:pointer;font:inherit;font-size:.8rem;font-weight:800;color:#64748b;background:transparent;padding:6px 10px;border-radius:999px;transition:background .2s,color .2s}.lang-btn.on{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}.lang-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media(hover:hover){.lang-btn:not(.on):hover{color:var(--accent)}}.m-secs{margin-top:14px}.acc{border:2px solid #eef2f7;border-radius:16px;margin-top:10px;overflow:hidden;background:#fff;transition:border-color .2s}.acc.open{border-color:color-mix(in srgb,var(--accent) 35%,white)}.acc-head{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;font:inherit;cursor:pointer;padding:12px 14px;text-align:left}.acc-head .ic{font-size:1.2rem}.acc-head .ttl{flex:1;font-weight:800;font-size:.9rem;color:#334155;text-transform:uppercase;letter-spacing:.4px}.acc-head .chev{color:#94a3b8;font-weight:800;transition:transform .25s}.acc.open .chev{transform:rotate(180deg);color:var(--accent)}.acc-body{padding:2px 14px 14px}.pair{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:12px;margin-top:6px;background:#f8fafc}.pair.ok{background:#f0fdf4}.pair.ok b{color:#15803d}.pair.no{background:#fff1f2}.pair.no b{color:#be123c}.pair.bug{background:#fffbeb}.pair b{font-size:.85rem;font-weight:800;flex:0 0 auto;line-height:1.35}.pair p{font-size:.9rem;font-weight:600;color:#334155;line-height:1.35}.kv{padding:8px 2px;border-bottom:1px dashed #e2e8f0}.kv:last-child{border-bottom:none}.kv b{display:block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;opacity:.5;margin-bottom:2px}.kv p{font-size:.93rem;font-weight:600;color:#1e293b;line-height:1.35}.solo{font-size:.95rem;font-weight:600;color:#334155;line-height:1.45}.b-sub{margin-top:20px;font-size:1rem;font-weight:800;color:#334155;display:inline-block;position:relative}.b-sub:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));opacity:.45}.chips-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip-ing{background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:700;color:#334155;box-shadow:var(--shadow)}.r-card{background:#f8fafc;border-radius:16px;padding:14px;margin-top:10px}.r-card h4{font-size:1.02rem;font-weight:800;color:#1e293b;display:flex;align-items:center;gap:8px}.r-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.r-time{flex:0 0 auto;font-size:.72rem;font-weight:800;white-space:nowrap;background:var(--accent-soft, #eef6ee);color:#334155;padding:4px 10px;border-radius:999px}.r-ings{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.r-tag{font-size:.78rem;font-weight:700;color:#334155;background:var(--accent-soft);padding:4px 10px;border-radius:999px}.r-card p{font-size:.9rem;font-weight:600;color:#475569;line-height:1.4}.r-steps{font-size:.88rem;font-weight:600;color:#475569;line-height:1.55}.b-note{font-size:.8rem;opacity:.55;font-weight:600;margin-top:16px;text-align:center}.tabs{position:relative;display:flex;background:#edf1f6;border-radius:999px;padding:4px;margin:16px 0 18px}.tab-ind{position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);background:#fff;border-radius:999px;box-shadow:0 2px 10px #0f172a24,0 1px 2px #0f172a14;transition:transform .36s cubic-bezier(.34,1.56,.64,1)}.tab-ind.right{transform:translate(100%)}.tab{flex:1;position:relative;z-index:1;border:none;background:transparent;font:inherit;font-weight:800;font-size:.92rem;color:#7c8798;padding:10px 4px;border-radius:999px;cursor:pointer;transition:color .28s,transform .15s;-webkit-tap-highlight-color:transparent}.tab.on{color:#1e293b}.tab:active{transform:scale(.96)}.tab:focus-visible{outline:2px solid var(--accent, #ea580c);outline-offset:2px}.tab-panel{min-height:120px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:640px){.app{padding-top:24px}.grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.overlay{align-items:center;padding:20px}.modal{border-radius:26px}}
