@import "https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap";:root{--bg:#fbf6ee;--surface:#fff;--surface-soft:#faf5ec;--surface-mute:#f7f2ea;--line:#ece1d1;--line-soft:#f2ebe0;--line-strong:#dfd2be;--ink:#3a332b;--ink-2:#6b6155;--ink-3:#8d8074;--ink-4:#a1958a;--ink-5:#b8ab9c;--accent:#c26b3d;--accent-ink:#b4643a;--accent-soft:#fdeee2;--ate:#5c7a45;--ate-soft:#eef3e8;--refused:#8a7a6c;--refused-soft:#f4efe9;--carb:#d9a441;--vitamin:#7a9a5b;--protein:#c26b3d;--other:#a99b8b;--mood-good:#6e8b57;--mood-ok:#8d8074;--mood-bad:#b0705a;--danger:#a8523c;--gap:14px;--radius:20px;--radius-s:12px;--radius-xs:8px;--tabbar:74px;--font:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.6}.app{max-width:560px;padding:0 20px;padding-bottom:calc(var(--tabbar) + 40px);margin:0 auto}.app.centered{align-items:center;min-height:100dvh;display:flex}.page{gap:var(--gap);flex-direction:column;display:flex}.page-head{flex-direction:column;gap:10px;padding:18px 0 4px;display:flex}.page-head h1{margin:0;font-size:21px;font-weight:700}.hint{color:var(--ink-3);margin:0;font-size:12px}.note{color:var(--ink-4);margin:0;font-size:11.5px}.error{color:#b4402a;margin:0;font-size:13px}.placeholder{color:var(--ink-4);text-align:center;padding:24px}.back{color:var(--ink-3);align-self:flex-start;align-items:center;gap:3px;font-size:13px;text-decoration:none;display:inline-flex}input,select,textarea,button,.button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);width:100%;min-height:46px;padding:10px 14px}textarea{line-height:1.7}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-2px}label{color:var(--ink-3);font-size:13px;display:block}.field{flex-direction:column;gap:6px;display:flex}button,.button{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);min-height:44px;color:inherit;cursor:pointer;text-align:center;padding:10px 16px;text-decoration:none}button:disabled{opacity:.45}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}button.wide,.button.wide{border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:52px;font-size:16px;display:flex}button.plain{background:0 0;border:none;min-height:0;padding:0}button.icon-button{width:44px;height:44px;color:var(--ink-3);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);min-height:44px;color:var(--ink-2);white-space:nowrap;flex:1 1 0;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:14px;display:flex}.chip-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.chip-planned.chip-on{background:var(--surface);border-style:dashed;border-color:var(--accent);color:var(--accent-ink)}.form-actions{gap:9px;display:flex}.form-actions>*{flex:1}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:18px;display:flex;box-shadow:0 1px 2px #5a462d0a}.card h2{margin:0;font-size:16px;font-weight:700}.legal{gap:0;line-height:1.85}.legal h1{margin:0 0 4px;font-size:19px}.legal h2{color:var(--accent-ink);margin:26px 0 6px;font-size:15px}.legal p{margin:0 0 10px}.legal ul,.legal ol{margin:0 0 10px;padding-left:1.3em}.legal li{margin-bottom:6px}.legal .callout{border-radius:var(--radius-s);background:var(--surface-mute);color:var(--ink-2);margin:4px 0 10px;padding:10px 12px;font-size:13px;line-height:1.75}.legal .note{margin-top:18px}.legal-links{justify-content:center;gap:16px;margin:4px 0 0;font-size:12px;display:flex}.legal-links a{color:var(--ink-3)}.month-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.month-title{flex-direction:column;flex-grow:1;align-items:center;gap:1px;display:flex}.month-title h1{margin:0;font-size:21px}.legend{color:var(--ink-3);gap:12px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.dot-done,.dot-planned{border-radius:999px;width:6px;height:6px}.dot-done{background:var(--mood-good)}.dot-planned{border:1.2px solid #c9a98f}.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.weekdays div{color:var(--ink-4);text-align:center;font-size:11px}.weekdays .sun{color:#c07a6a}.weekdays .sat{color:#7a8fa8}.calendar-cell{border:1px solid var(--line-soft);background:#fdfbf7;border-radius:9px;flex-direction:column;align-items:flex-start;gap:2px;min-height:66px;padding:5px 4px;display:flex;overflow:hidden}.calendar-cell.has-records{background:var(--surface)}.calendar-cell.today{border:1.5px solid var(--accent)}.calendar-cell.blank{background:0 0;border:none}.calendar-date{font-size:12px;font-weight:500}.today .calendar-date{color:var(--accent);font-weight:700}.calendar-dots{gap:2px;display:flex}.calendar-names{max-width:100%;color:var(--ink-4);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;overflow:hidden}.slot-card{gap:0;padding:16px 18px 14px}.slot-card.empty-slot{border-style:dashed;border-color:var(--line-strong);background:#fffdf9}.slot-head{align-items:center;gap:10px;padding-bottom:12px;display:flex}.slot-badge{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700}.slot-total{font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.slot-total .unit{color:var(--ink-3);font-size:13px;font-weight:500}.slot-planned{border:1px dashed var(--line-strong);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.slot-planned .unit{font-size:11px;font-weight:500}.meal{border-top:1px solid var(--line-soft);flex-direction:column;gap:7px;padding:12px 0;display:flex}.meal-head{align-items:center;gap:8px;display:flex}.meal-name{flex-grow:1;min-width:0;margin:0;font-size:17px;font-weight:700}.meal.not-counted .meal-name{color:var(--ink-2)}.meal.planned{background:repeating-linear-gradient(45deg,#0000 0 5px,#3a332b09 5px 10px)}.meal.planned .meal-subtotal{color:var(--ink-3);border-bottom:1px dashed var(--line-strong)}.meal-subtotal{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.meal.not-counted .meal-subtotal{color:var(--ink-5);text-decoration:line-through}.meal-subtotal .unit{color:var(--ink-3);font-size:12px;font-weight:500}.mood-mark{background:var(--surface-mute);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.mood-ごきげん{color:var(--mood-good)}.mood-ふつう{color:var(--mood-ok)}.mood-ぐずり{color:var(--mood-bad)}.status-chip{border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;min-height:26px;padding:0 10px;font-size:12px;font-weight:700;display:flex}.status-ate{background:var(--ate-soft);color:var(--ate)}.status-refused{background:var(--refused-soft);color:var(--refused)}.status-planned{border:1px solid var(--line-strong);color:var(--ink-3);background:0 0;font-weight:500}.ingredients{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.ingredients li{align-items:center;gap:8px;font-size:14px;display:flex}.nutrition-mark{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;font-size:11px;font-weight:700;display:flex}.ingredient-name{flex-grow:1;min-width:0}.ingredient-amount{text-align:right;width:52px;color:var(--ink-3);font-variant-numeric:tabular-nums}.first-badge{color:var(--ate);background:#f3f7ec;border-radius:999px;align-items:center;gap:3px;padding:1px 7px 1px 5px;font-size:11px;font-weight:700;display:flex}.recipe-link{color:var(--accent-ink);align-items:center;gap:6px;font-size:13px;text-decoration:none;display:flex}.recipe-host{color:var(--ink-4)}.memo{border-radius:var(--radius-s);background:var(--bg);color:var(--ink-2);white-space:pre-wrap;margin:0;padding:10px 12px;font-size:13px;line-height:1.7}.meal-actions{gap:8px;display:flex}.meal-actions button{flex:1;min-height:36px;padding:4px;font-size:13px}.grip{border-radius:var(--radius-s);width:30px;height:30px;color:var(--ink-4);cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:-6px;display:flex}.grip:active{background:var(--surface-mute);cursor:grabbing}article.meal.dragging{z-index:1;border-radius:var(--radius-s);background:var(--surface);opacity:.92;pointer-events:none;position:relative;box-shadow:0 6px 18px #00000024}.slot-card.sorting{-webkit-user-select:none;user-select:none}.slot-foot{border-top:1px solid var(--line-soft);flex-direction:column;gap:8px;padding-top:12px;display:flex}.milk-row{border-radius:var(--radius-s);background:var(--surface-mute);min-height:46px;color:var(--ink-3);align-items:center;gap:10px;padding:0 14px;display:flex}.milk-row.empty{border:1px dashed var(--line-strong);color:var(--ink-4);background:0 0}.milk-label{flex-grow:1;font-size:14px}.milk-input{align-items:baseline;gap:3px;display:flex}.milk-input input{text-align:right;font-variant-numeric:tabular-nums;width:74px;min-height:38px;padding:4px 10px;font-size:17px;font-weight:700}.slot-badge-menu{display:flex;position:relative}button.slot-badge-button{border:none;align-items:center;gap:6px;min-height:44px;padding:0 12px 0 16px;display:flex;box-shadow:inset 0 0 0 1px #f6d9c4}.slot-menu{z-index:5;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);min-width:250px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 26px #5a462d29}.slot-menu button{border-radius:var(--radius-s);width:100%;min-height:44px;color:var(--accent-ink);text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:9px;padding:0 10px;font-size:14px;font-weight:700;display:flex}.slot-menu button:hover{background:var(--accent-soft)}.slot-move{border:1px solid var(--line-soft);border-radius:var(--radius-s);background:var(--surface-soft);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.slot-move label,.slot-move .move-label{color:var(--ink-3);font-size:13px}.slot-move .hint{margin:0}.notice{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface-mute);flex-direction:column;gap:8px;padding:14px;font-size:14px;line-height:1.7;display:flex}.notice p{margin:0}.invite-code{border:1px dashed var(--line-strong);border-radius:var(--radius-s);background:var(--surface);color:var(--accent-ink);letter-spacing:.22em;text-align:center;-webkit-user-select:all;user-select:all;margin:0;padding:12px;font-size:26px;font-weight:700}.member-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.member-list li{border-radius:var(--radius-s);background:var(--surface-mute);align-items:center;gap:8px;min-height:40px;padding:0 12px;font-size:14px;display:flex}button.danger{border-color:var(--danger);color:var(--danger)}.ingredient-filter{flex-direction:column;gap:8px;margin-bottom:4px;display:flex}.disclosure{border-radius:var(--radius-s);background:var(--surface-soft);width:100%;min-height:44px;color:var(--ink-2);text-align:left;border:none;align-items:center;gap:8px;padding:0 14px;font-size:14px;display:flex}.disclosure .grow{flex-grow:1}.mini-dots{gap:3px;display:flex}.mini-dots span{border-radius:999px;width:9px;height:9px}.mini-dots span.planned-only{border:2px solid}.nutrition-panel{background:var(--surface-soft);border-radius:16px;flex-direction:column;gap:14px;padding:16px 16px 18px;display:flex}.nutrition-head{width:100%;min-height:0;color:var(--ink-2);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:14px;font-weight:700;display:flex}.donut-row{flex-direction:column;align-items:center;gap:14px;display:flex}@media (width>=470px){.donut-row{flex-direction:row;gap:18px}}.donut{flex-shrink:0;width:128px;height:128px;position:relative}.donut-center{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0}.donut-total{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.donut-total .unit{color:var(--ink-3);font-size:14px;font-weight:500}.donut-caption{color:var(--ink-4);font-size:11px}.nutrition-legend{flex-direction:column;flex-grow:1;gap:9px;width:100%;margin:0;padding:0;list-style:none;display:flex}.nutrition-legend li{align-items:center;gap:6px;font-size:13px;display:flex}.swatch{border-radius:4px;flex-shrink:0;width:11px;height:11px}.nutrition-legend .name{flex-grow:1;min-width:0}.nutrition-legend .percent{font-variant-numeric:tabular-nums;font-weight:700}.nutrition-legend .grams{text-align:right;width:42px;color:var(--ink-3);font-variant-numeric:tabular-nums}.nutrition-legend .planned-grams{width:42px;color:var(--ink-4);font-size:11px}.swatch.has-planned{background-image:repeating-linear-gradient(45deg, transparent 0 3px, var(--surface-soft) 3px 6px)}.panel-milk{color:var(--ink-2);border-top:1px solid #f0e7d8;align-items:center;gap:8px;padding-top:12px;font-size:13px;display:flex}.rows{border:1px solid var(--line-soft);background:#fdfaf5;border-radius:14px;flex-direction:column;gap:10px;margin:0;padding:14px;display:flex}.rows legend{color:var(--ink-3);padding:0;font-size:13px}.row{border-bottom:1px dashed var(--line);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.row:last-of-type{border-bottom:none;padding-bottom:0}.row-main{gap:6px;display:flex}.row-main .amount{text-align:right;width:68px}.row-main select{width:76px;padding:10px 6px}.row-tags{align-items:center;gap:5px;display:flex;overflow-x:auto}.tag{border:1px solid var(--line);min-height:32px;color:var(--ink-3);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;padding:0 11px;font-size:12px;display:flex}.tag-on{color:#fff;border-color:#0000;font-weight:700}.picker{flex-grow:1;min-width:0;position:relative}.picker-list{z-index:10;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);max-height:200px;margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #5a462d1f}.picker-list button{text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:9px;width:100%;display:flex}.picker-list li+li button{border-top:1px solid var(--line-soft)}.picker-count{color:var(--ink-4);font-size:12px}.search-field{border:1px solid var(--line-strong);background:var(--surface);min-height:50px;color:var(--ink-4);border-radius:999px;align-items:center;gap:10px;padding:0 16px;display:flex}.search-field input{min-height:0;color:var(--ink);background:0 0;border:none;flex-grow:1;padding:0;font-size:16px}.search-field input:focus{outline:none}.filter-bar{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:46px;color:var(--ink-3);text-align:left;border-radius:14px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:flex}.filter-bar .grow{flex-grow:1}.active-filters{flex-wrap:wrap;gap:5px;display:flex}.active-filter{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:700;display:flex}.filter-panel{border:1px solid var(--line-strong);background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;padding:16px 16px 18px;display:flex}.filter-head{align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.period{align-items:center;gap:8px;display:flex}.period input{text-align:center;font-variant-numeric:tabular-nums;min-height:42px}.hits{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hit{border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:16px;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;display:flex}.hit-head{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:13px;display:flex}.hit-slot{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:1px 9px;font-size:11px;font-weight:700}.hit-main{align-items:center;gap:8px;display:flex}.hit-name{flex-grow:1;min-width:0;font-size:16px;font-weight:700}.hit-firsts{flex-wrap:wrap;gap:6px;display:flex}.hit-matched{color:var(--ink-3);align-items:center;gap:6px;font-size:12px;display:flex}.hit-where{background:#f4efe6;border-radius:6px;padding:1px 7px}.shopping{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.shopping label{border:1px solid var(--line);background:var(--surface);min-height:56px;color:var(--ink);border-radius:14px;align-items:center;gap:11px;padding:0 16px;font-size:16px;display:flex}.shopping input[type=checkbox]{width:26px;height:26px;min-height:0;accent-color:var(--mood-good);flex-shrink:0}.shopping-name{flex-grow:1;min-width:0}.shopping label.done .shopping-name,.shopping label.done .shopping-amount{color:var(--ink-5);text-decoration:line-through}.shopping-amounts{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.shopping-amount{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.shopping-count{color:var(--ink-4);font-size:11px}.ingredient-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ingredient-row{border:none;border-bottom:1px solid var(--line-soft);text-align:left;background:0 0;border-radius:0;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 4px;font-size:15px;display:flex}.allergy-badge{color:#8a6a3a;background:#f6eddc;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.ingredient-detail{background:var(--surface-soft);border-radius:14px;flex-direction:column;gap:10px;margin-bottom:2px;padding:12px 14px 14px;display:flex}.ingredient-history{color:var(--ink-3);flex-direction:column;gap:2px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.tabs{height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf9f0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--ink-4);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;text-decoration:none;display:flex}.tab-active{color:var(--accent);font-weight:700}.login{gap:var(--gap);min-width:min(340px,90vw);display:grid}.signin{justify-content:center;display:flex}.signin-google{min-height:44px}.signin-divider{color:var(--ink-4);align-items:center;gap:10px;margin:0;font-size:13px;display:flex}.signin-divider:before,.signin-divider:after{content:"";border-top:1px solid var(--line);flex:1}
