:root{--bg:#faf8f4;--card:#fff;--ink:#23201c;--muted:#6f6961;--line:#e6e0d6;--accent:#b4602f;--accent-soft:#fbf0e8;--good:#2f7a4d;--warn:#9a6b12;--bad:#a8402f;--radius:14px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:none;margin:0;padding:0;font-family:Hiragino Sans,Yu Gothic UI,Meiryo,system-ui,sans-serif;font-size:16px;line-height:1.75}button,.role,.tags,.seg,.sheet-bar,summary{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea,select,label{touch-action:manipulation}.wrap{max-width:720px;padding:calc(24px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(96px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));margin:0 auto}.wrap.wide{max-width:1180px}h1{margin:8px 0 4px;font-size:22px}h2{border-bottom:2px solid var(--line);margin:28px 0 10px;padding-bottom:6px;font-size:18px}h3{margin:18px 0 6px;font-size:16px}.sub{color:var(--muted);margin:0 0 18px;font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:14px 0;padding:18px}.card.accent{background:var(--accent-soft);border-color:#e2c4ac}.q{border-bottom:1px dashed var(--line);margin:0 0 20px;padding:0 0 18px}.q:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.q .label{margin-bottom:4px;font-weight:600;display:block}.q .hint{color:var(--muted);margin:0 0 8px;font-size:13px}.q.critical .label:after{content:"必ず確認します";color:var(--bad);border:1px solid var(--bad);vertical-align:middle;white-space:nowrap;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.chip{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:6px 16px;font-family:inherit;font-size:15px;line-height:1.4;display:inline-flex}@media (hover:hover){.chip:hover{border-color:var(--accent)}}.chip:active{background:var(--accent-soft)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=number],input:not([type]),textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:11px 12px;font-family:inherit;font-size:16px}textarea{resize:vertical;min-height:46px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.free-label{color:var(--muted);margin:6px 0 3px;font-size:12px;display:block}button.primary,button.ghost{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;min-height:48px;font-family:inherit;line-height:1.4;display:inline-flex}button.primary{background:var(--accent);color:#fff;border:none;padding:12px 22px;font-size:16px;font-weight:600}button.primary:disabled{opacity:.5;cursor:default}button.primary:not(:disabled):active{background:#9c5228}button.ghost{color:var(--accent);border:1px solid var(--accent);background:#fff;padding:10px 18px;font-size:15px}button.ghost:active{background:var(--accent-soft)}button.ghost.small{white-space:nowrap;min-height:44px;padding:8px 14px;font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notice{border-left:4px solid var(--warn);color:#6b4e0d;background:#fdf6e6;border-radius:6px;margin:12px 0;padding:10px 14px;font-size:13px}.notice.error{border-left-color:var(--bad);color:#7d2f22;background:#fdeeeb}.dish{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.dish:first-of-type{border-top:none;margin-top:0;padding-top:0}.role{background:var(--accent-soft);color:var(--accent);border-radius:6px;margin-right:8px;padding:1px 9px;font-size:12px;display:inline-block}.dish a{color:var(--accent);overflow-wrap:anywhere;padding:8px 0;font-weight:600;display:inline-block}.tags{color:var(--muted);margin-top:2px;font-size:12px}.steps{border:1px solid var(--line);background:var(--card-soft,transparent);border-radius:10px;margin-top:12px;padding:10px 12px}.steps>summary{cursor:pointer;color:var(--accent);padding:4px 0;font-size:14px;font-weight:600;list-style:none}.steps>summary::-webkit-details-marker{display:none}.steps>summary:before{content:"▶ ";font-size:11px}.steps[open]>summary:before{content:"▼ "}.steps ol{margin:10px 0 0;padding-left:1.4em}.steps li{margin-bottom:10px;line-height:1.75}.steps ol.outline li{margin-bottom:6px;line-height:1.6}.dish .steps-link{border:1px solid var(--accent);min-height:44px;color:var(--accent);white-space:nowrap;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.dish .steps-link:before{content:"▶";font-size:11px}.dish .steps-link:active{background:var(--accent-soft)}ul.ing{columns:2;column-gap:22px;margin:8px 0 0;padding-left:0;font-size:14px;list-style:none}ul.ing li{border-bottom:1px dotted var(--line);break-inside:avoid;justify-content:space-between;gap:10px;padding:3px 0;display:flex}ul.ing li span:last-child{color:var(--muted);white-space:nowrap}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 9px}th{white-space:nowrap;background:#f3efe8}.scroll{overflow-x:auto}.tabs{flex-wrap:wrap;gap:6px;margin:16px 0;display:flex}.tab{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:8px 8px 0 0;padding:7px 14px;font-family:inherit;font-size:14px}.tab.on{background:var(--accent);border-color:var(--accent);color:#fff}.pill{border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11px;display:inline-block}.pill.good{color:var(--good);border-color:var(--good)}.pill.meh{color:var(--warn);border-color:var(--warn)}.pill.bad{color:var(--bad);border-color:var(--bad)}.pill.mid{color:var(--warn);border-color:var(--warn)}.with-toggle{position:relative}.with-toggle input{padding-right:62px}.with-toggle .toggle{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;padding:0 12px;font-family:inherit;font-size:14px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.topbar h1{flex:1;min-width:0}@media (max-width:520px){.topbar{flex-direction:column-reverse;align-items:stretch}.topbar .account{justify-content:flex-end}}.sticky-bar{padding:12px 0 calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:10;background:#faf8f4f0;position:fixed;bottom:0;left:0;right:0}.sticky-inner{max-width:720px;padding:0 calc(14px + env(safe-area-inset-left)) 0 calc(14px + env(safe-area-inset-right));align-items:center;gap:14px;margin:0 auto;display:flex}.sticky-inner .primary{flex-shrink:0}@media (max-width:380px){.sticky-inner{gap:10px}.sticky-inner .primary{padding:12px 16px;font-size:15px}}.progress{flex:1;min-width:0}.progress-bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.progress-bar span{background:var(--accent);border-radius:999px;height:100%;transition:width .25s;display:block}.progress-text{color:var(--muted);font-size:12px}.q.answered .label{color:var(--muted)}@keyframes flash{0%,to{background:0 0}30%{background:#fdf0e6}}.q.flash{border-radius:10px;animation:1.6s flash}.spinner{border:2px solid var(--line);border-top-color:var(--accent);vertical-align:-2px;border-radius:50%;width:15px;height:15px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:560px){ul.ing{columns:1}.wrap{padding-left:calc(14px + env(safe-area-inset-left));padding-right:calc(14px + env(safe-area-inset-right))}.card{padding:15px}h1{font-size:20px}.dish .role{margin:0 0 2px;display:block}.dish a{padding:11px 0;font-size:17px;line-height:1.5;display:block}}ul.ing li span:first-child,.dish a{overflow-wrap:anywhere}.sheet{z-index:100;background:var(--bg);flex-direction:column;height:100dvh;animation:.18s ease-out sheet-in;display:flex;position:fixed;inset:0}@keyframes sheet-in{0%{opacity:.4;transform:translateY(14px)}}.sheet-bar{padding:calc(6px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) 6px calc(4px + env(safe-area-inset-left));background:var(--card);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:4px;display:flex}.sheet-back{width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-family:inherit;font-size:30px;line-height:1}.sheet-heading{flex:1;min-width:0;padding:4px 0}.sheet-role{background:var(--accent-soft);color:var(--accent);vertical-align:2px;border-radius:6px;margin-right:7px;padding:0 8px;font-size:11px;display:inline-block}.sheet-title{overflow-wrap:anywhere;font-size:16px;font-weight:600}.seg{padding:8px calc(14px + env(safe-area-inset-right)) 8px calc(14px + env(safe-area-inset-left));background:var(--card);border-bottom:1px solid var(--line);flex-shrink:0;gap:6px;display:flex}.seg-btn{border:1px solid var(--line);min-height:40px;color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;flex:1;font-family:inherit;font-size:14px}.seg-btn.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px calc(16px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));flex:1;overflow-y:auto}.sheet-meta{color:var(--muted);margin:0;font-size:12px}.sheet-h{border-bottom:1px solid var(--line);margin:18px 0 6px;padding-bottom:5px;font-size:15px}.sheet-steps{margin:10px 0 0;padding-left:1.5em;font-size:15px}.sheet-steps li{margin-bottom:12px;line-height:1.8}.sheet-steps.outline li{margin-bottom:8px;line-height:1.7}.step-cards{flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}.step-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:12px;padding:12px 14px;transition:opacity .2s;display:flex}.step-card.done{opacity:.5}.step-card.done .step-head{text-decoration:line-through}.step-num{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:32px;height:32px;font-family:inherit;font-size:15px;font-weight:700}.step-card.done .step-num{background:var(--good)}.step-main{flex:1;min-width:0}.step-head{overflow-wrap:anywhere;margin:4px 0;font-size:16px;font-weight:700}.step-body{overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.8}.step-tip{color:var(--warn);background:#fdf6e7;border-radius:8px;margin:8px 0 0;padding:6px 10px;font-size:13px;line-height:1.7}.step-foot{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.step-use{background:var(--accent-soft);color:var(--ink);border-radius:999px;align-items:baseline;gap:5px;padding:3px 10px;font-size:13px;display:inline-flex}.step-use b{color:var(--accent);font-weight:700}.step-timer{font-variant-numeric:tabular-nums;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.step-timer.on{background:var(--accent);color:#fff}.step-timer.rang{background:var(--bad);border-color:var(--bad);color:#fff;animation:1s ease-in-out infinite step-ring}@keyframes step-ring{50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.step-timer.rang{animation:none}}.sheet-frame{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.frame-origin{color:var(--muted);border-bottom:1px solid var(--line);text-align:center;background:#f3efe8;flex-shrink:0;padding:4px 14px;font-size:12px}.frame-wait{text-align:center;color:var(--muted);padding:20px;font-size:14px;position:absolute;top:0;left:0;right:0}.recipe-frame{background:#fff;border:none;flex:1;width:100%}a.link-btn{border:1px solid var(--accent);min-height:48px;color:var(--accent);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:10px 18px;font-size:15px;text-decoration:none;display:inline-flex}a.link-btn:active{background:var(--accent-soft)}a.link-btn.primary{background:var(--accent);color:#fff;border:none;padding:12px 22px;font-size:16px;font-weight:600}a.link-btn.primary:active{background:#9c5228}.install-bar{z-index:50;padding:12px calc(16px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);background:#fffffff7;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.install-text{flex:1;min-width:0;font-size:14px}.install-text .sub{margin:2px 0 0;font-size:12px;display:block}.install-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.install-actions .primary{min-height:44px;padding:10px 16px;font-size:14px}.install-close{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:22px;line-height:1}body.has-install-bar .wrap{padding-bottom:calc(160px + env(safe-area-inset-bottom))}.wrap.with-tabbar{padding-bottom:calc(96px + env(safe-area-inset-bottom))}body.has-install-bar .wrap.with-tabbar{padding-bottom:calc(200px + env(safe-area-inset-bottom))}.with-tabbar .install-bar{bottom:calc(60px + env(safe-area-inset-bottom));padding-bottom:12px}.tabbar{z-index:40;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffffa;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{min-height:60px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-family:inherit;font-size:11px;display:flex}.tabbar button.on{color:var(--accent);font-weight:600}.week-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.day-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:4px 14px 12px}.day-card.today{border-color:#e2c4ac;padding-top:8px}.day-card.pending{border-style:dashed}.day-head{width:100%;min-height:44px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-family:inherit;display:flex}.day-head.static{cursor:default;min-height:32px}.day-label{font-size:15px;font-weight:700}.day-card.today .day-label{color:var(--accent)}.day-time{color:var(--muted);margin-left:auto;font-size:12px}.day-badge{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:0 8px;font-size:11px}.day-head .chev{color:var(--muted);flex-shrink:0;transition:transform .15s}.day-head .day-time+.chev,.day-head .day-badge+.chev{margin-left:4px}.day-head .day-label+.chev{margin-left:auto}.day-head .chev.up{transform:rotate(180deg)}.day-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.day-why{background:var(--accent-soft);border-radius:10px;margin:8px 0 4px;padding:8px 11px;font-size:13px}.day-dishes{margin:6px 0 0;padding:0;list-style:none}.dish-row{border:none;border-bottom:1px dotted var(--line);text-align:left;width:100%;min-height:46px;color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:6px 0;font-family:inherit;display:flex}.day-dishes li:last-child .dish-row{border-bottom:none}.dish-row .role{flex-shrink:0;margin-right:0}.dish-name{min-width:0;color:var(--accent);overflow-wrap:anywhere;flex:1;font-size:15px;font-weight:600}.dish-meta{color:var(--muted);flex-shrink:0;font-size:12px}.dish-go{color:var(--muted);flex-shrink:0}.day-probe{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;font-size:14px}.day-feedback{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}.fb-label{color:var(--muted);margin-top:4px;font-size:12px;display:block}.day-feedback .chips{margin:4px 0 6px}.day-feedback .chip{min-height:40px;padding:4px 14px;font-size:14px}.toast{left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:45;max-width:696px;margin:0 auto;position:fixed;box-shadow:0 4px 16px #0000001f}.shop-h{border:none;margin:0 0 6px;padding:0;font-size:17px}.shop-top{justify-content:space-between;align-items:center;gap:10px;margin:12px 0 4px;display:flex}button.linkish{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-family:inherit;font-size:14px;text-decoration:underline}.pick-list{flex-direction:column;gap:6px;display:flex}.pick{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:0 12px;display:flex}.pick.on{border-color:var(--accent);background:var(--accent-soft)}.pick input,.shop-item input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:0}.pick-date{flex-shrink:0;width:64px;font-size:14px;font-weight:700}.pick-title{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.pick-bought{color:var(--good);font-size:12px}.shop-block-head{background:var(--accent-soft);border:1px solid #e2c4ac;border-radius:12px;padding:10px 13px}.shop-block-title{color:var(--accent);font-size:16px;font-weight:700}.shop-sec{color:var(--muted);margin:14px 0 2px;font-size:12px;font-weight:600}.shop-item{border-bottom:1px dotted var(--line);cursor:pointer;align-items:center;gap:9px;min-height:42px;display:flex}.shop-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:15px}.shop-days{color:#7a5a3c;background:var(--accent-soft);border-radius:999px;flex-shrink:0;padding:0 8px;font-size:11px}.shop-amount{text-align:right;min-width:64px;color:var(--muted);flex-shrink:0;font-size:14px}.shop-item.done .shop-name,.shop-item.done .shop-amount{color:var(--muted);text-decoration:line-through}.seasonings{border:1px solid var(--line);border-radius:12px;margin-top:14px;padding:0 12px}.seasonings>summary{cursor:pointer;align-items:center;gap:8px;min-height:46px;list-style:none;display:flex}.seasonings>summary::-webkit-details-marker{display:none}.seasonings>summary:after{content:"▼";color:var(--muted);font-size:10px}.seasonings[open]>summary:after{content:"▲"}.seasonings-title{font-size:14px;font-weight:600}.seasonings-peek{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.seasonings .shop-item:last-child{border-bottom:none}.fresh{background:#fffaf0;border:1px solid #e8d3a8;border-radius:12px;margin-top:12px;padding:12px}.fresh-lead{font-size:14px}.fresh-list{margin:8px 0 0;padding:0;list-style:none}.fresh-list li{border-bottom:1px dotted var(--line);align-items:center;gap:9px;min-height:32px;font-size:13px;display:flex}.fresh-list li.warn{color:var(--bad)}.fresh-day{flex-shrink:0;width:22px;font-weight:600}.fresh-items{flex:1;min-width:0}.fresh-after{flex-shrink:0;font-size:12px}.fresh-option{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:8px;padding:10px 12px}.fresh-option.recommended{border-color:#e2c4ac}.fresh-option-title{font-size:14px;font-weight:700}.badge{color:#fff;background:var(--accent);vertical-align:2px;border-radius:999px;margin-left:6px;padding:0 8px;font-size:10px;font-weight:600;display:inline-block}.remake-list{border:1px solid var(--line);background:#fff;border-radius:12px;padding:2px 12px}.remake-list .shop-item:last-child{border-bottom:none}
