*{box-sizing:border-box}body{margin:0;font-family:system-ui,"Noto Sans JP",sans-serif;background:#f6f8fc;color:#333;font-size:17px;padding-bottom:76px}
header{background:#1f8f82;color:#fff;padding:12px 16px;position:sticky;top:0;z-index:2}h1{margin:0;font-size:19px}
main{padding:12px}h2{font-size:18px;margin:16px 0 8px}.card{background:#fff;border-radius:12px;padding:12px;margin:8px 0;box-shadow:0 1px 3px #0002}
.sale{background:#fff1e6;border-left:5px solid #1f8f82}.muted{color:#888;font-size:14px}.tag{display:inline-block;background:#e3f5f1;border-radius:8px;padding:1px 8px;margin:2px;font-size:14px}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid #ddd}nav a{flex:1;text-align:center;padding:6px 0;font-size:12px;color:#555;text-decoration:none}nav a.on{color:#1f8f82;font-weight:bold}
button,input,select,textarea{font-size:16px;padding:10px;border-radius:8px;border:1px solid #ccc;font-family:inherit}button{background:#1f8f82;color:#fff;border:0;min-height:44px}button.sub{background:#eee;color:#333}
.row{display:flex;gap:8px;margin:6px 0;flex-wrap:wrap}.row>*{flex:1;min-width:0}a.link{display:inline-block;margin:4px 8px 0 0;color:#c55a1f}
.seg{display:flex;gap:4px}.seg button{flex:1;background:#eee;color:#333}.seg button.on{background:#1f8f82;color:#fff}
.bar{height:14px;background:#eee;border-radius:7px;overflow:hidden}.bar div{height:100%;background:#4caf50}.bar div.over{background:#e53935}
li.done span{text-decoration:line-through;color:#aaa}ul.chk{list-style:none;padding:0}ul.chk li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eee}ul.chk input{width:24px;height:24px}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid #eee;padding:6px 4px;text-align:left}
.sample{background:#fffbe0;border:2px dashed #e0b400}.sampletag{background:#ffe680;font-weight:bold}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:1 0 30%}
.lesson h2{font-size:22px}.big{font-size:19px;line-height:1.7}.tip{background:#eef7ee;border-radius:8px;padding:10px}.hack{padding:8px 0;border-bottom:1px solid #eee}
.bub{background:#f1f1f1;border-radius:12px;padding:8px 12px;margin:6px 40px 6px 0}.bub.me{background:#e3f5f1;margin:6px 0 6px 40px}
.btnlike{flex:1;background:#eee;border-radius:8px;text-align:center;padding:12px 4px;font-size:16px}nav a{font-size:11px}
.scard{display:flex;align-items:center;gap:10px}.amt{font-size:19px;font-weight:bold;white-space:nowrap}.mrow{align-items:center}
.bar div.warn{background:#f9a825}.crow{display:flex;justify-content:space-between;margin-top:6px}.chip{background:#e3f5f1;color:#333;min-height:36px;padding:4px 10px;margin:3px;font-size:14px}h3{font-size:16px;margin:10px 0 4px}
button.consult{background:#7b5ea7}.err{background:#fdecea;color:#b71c1c;border-radius:8px;padding:10px}.consultbox select{width:100%;margin-bottom:6px}
.chk1{display:block;margin-top:8px}button:disabled{opacity:.5}
/* 押しやすさ：ボタン・選択肢は最低44px（360px幅でも） */
button,select,.tabs a,label.chk1,input[type=checkbox]+span{min-height:44px}
button{min-width:44px;padding-top:8px;padding-bottom:8px}
input[type=checkbox]{width:22px;height:22px}
label.chk1{display:flex;align-items:center;gap:6px}
.chip{min-height:44px}
ul.chk li{min-height:44px;display:flex;align-items:center}
input[type=checkbox]{width:28px;height:28px;margin:8px}
ul.chk li input[type=checkbox],.chk1 input[type=checkbox]{width:28px;height:28px;margin:8px;flex:none}
.btnlike{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border-radius:10px;background:#1f8f82;color:#fff;font-weight:bold;cursor:pointer}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.th{position:relative}.th img{width:96px;height:128px;object-fit:cover;border:1px solid #ccc;border-radius:6px}.th button{position:absolute;top:-6px;right:-6px;min-width:44px;min-height:44px;padding:0}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}.qbtn{min-height:64px;font-size:15px;line-height:1.3;white-space:normal}
.hrow{display:flex;align-items:center;gap:6px}.lesson .big,.lesson p.big{font-size:21px;line-height:1.6}.lesson h2{font-size:22px}
.timer{text-align:center;margin:10px 0}.tbig{font-size:44px;font-weight:bold;font-variant-numeric:tabular-nums;display:block}
/* v15：押しやすさ（44px） */
a.link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
input[type=checkbox]{width:28px;height:28px;margin:8px}
input[type=number],input[inputmode=numeric],input[id^=yen],#sp_amt{min-height:44px;font-size:16px}

label.lrow{display:flex;align-items:center;flex:1;min-height:44px;gap:4px;cursor:pointer}.badges{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}.badge{min-height:44px;background:#eefaf7;color:#1f8f82;border:1px solid #b5e2da;font-size:13px;padding:4px 10px}ul.chk li{flex-wrap:wrap}.dishes{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.dish{min-height:44px;background:#fff;color:#333;border:1px solid #1f8f82}.dish0{display:inline-flex;align-items:center;min-height:44px;padding:0 8px}.seg.lv{display:flex;gap:6px;margin-bottom:8px}.seg.lv button{flex:1}.tabs a{min-height:44px}
nav a{min-height:48px;box-sizing:border-box}
ul.chk li label.lrow{flex:1 1 58%;min-width:58%}

header{background:#fff;color:#1f8f82;border-bottom:4px solid #ffb72b;display:flex;align-items:center;gap:10px;padding:8px 14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}header .hface{width:40px;height:40px;border-radius:50%;border:2px solid #1f8f82;background:#e6f7f4}header h1{color:#1f8f82}header h1::after{content:'';display:inline-block;width:10px;height:10px;margin-left:6px;background:#ffb72b;transform:rotate(45deg);border-radius:2px}
.ava{width:30px;height:30px;border-radius:50%;vertical-align:middle;margin-right:6px;border:2px solid #fff;background:#e6f7f4}button.consult{display:inline-flex;align-items:center;background:#1f8f82;border-radius:24px;padding:6px 16px 6px 8px}
.card.inbox{border-left:5px solid #ffb72b}.card.inbox .ava{border-color:#1f8f82}
.empty{text-align:center}.empty img{width:120px;height:auto;display:block;margin:0 auto 6px}
#toast{display:flex!important;align-items:center;gap:8px}#toast img{width:44px;height:44px;object-fit:contain}#toast[hidden]{display:none!important}
.loadchibi{width:64px;vertical-align:middle;animation:bob 1s ease-in-out infinite alternate}@keyframes bob{to{transform:translateY(-6px)}}
nav a.on{color:#1f8f82;box-shadow:inset 0 3px 0 #ffb72b}
#toast{background:#1f8f82!important;border:2px solid #ffb72b}
.ava,.hface,#toast img{pointer-events:none}
#undos{position:fixed;left:8px;right:8px;bottom:64px;z-index:9998}.undo{display:flex;align-items:center;gap:8px;background:#222;color:#fff;border-radius:12px;padding:4px 4px 4px 14px;font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.25)}.undo span{flex:1}.undo button{background:#fff;color:#1f8f82;font-weight:bold}li[data-del]{transition:transform .15s;touch-action:pan-y}
.dpanel{border-left:5px solid #1f8f82;margin:4px 0 10px}.dpanel ul.ing{list-style:none;padding:0;margin:4px 0}.dpanel ul.ing li{display:flex;justify-content:space-between;align-items:center;min-height:36px;border-bottom:1px dashed #e3e8f2;gap:6px}.tag.ok{background:#e3f4e6;color:#1b5e20}.dish.on{background:#1f8f82;color:#fff}ol.steps{padding-left:22px;margin:4px 0}

ul.chk{display:flex;flex-direction:column}ul.chk li.incart{order:1;background:#f2f2f2;opacity:.75}ul.chk li.incart .lrow span{color:#888}.cartb{min-height:48px;min-width:72px;flex:none;background:#fff;color:#1f8f82;border:2px solid #1f8f82;border-radius:12px;font-size:15px;font-weight:bold;padding:4px 8px}.cartb.on{background:#2e7d32;color:#fff;border-color:#2e7d32}.cartbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;justify-content:space-between;background:#e8f5e9;border:1px solid #2e7d32;border-radius:12px;padding:8px;margin-bottom:8px}.cartbar span{white-space:nowrap}.cartbar button{min-height:48px;flex:1;background:#2e7d32;color:#fff}
ul.chk li select{width:auto!important;min-width:9.5em;max-width:100%;flex:0 1 auto;text-overflow:clip}ul.chk li input[type=number]{flex:0 0 80px}ul.chk li .lrow span{overflow-wrap:anywhere;word-break:break-word;white-space:normal}ul.chk li.incart select,ul.chk li.incart input{opacity:1;color:#333}

.oedit{background:#fff;border:1px dashed #1f8f82;color:#1f8f82}.oftbox{margin-top:10px;border-top:1px solid #eee;padding-top:8px}.oftrow{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;border-bottom:1px solid #eee}.oftrow input,.oftrow select{flex:1 1 40%;min-width:0;min-height:44px}.oftrow select{width:auto;min-width:9.5em}.oftbtn{display:flex;gap:6px;flex:1 1 100%;justify-content:flex-end}.oftbtn button{min-width:52px;min-height:48px;font-size:18px}
.maplink{color:#1f8f82;text-decoration:underline;text-underline-offset:3px;display:inline-block;min-height:32px;padding:2px 0}
.fridge{background:linear-gradient(#f4f9ff,#e6f0fb);border:3px solid #9db7d9;border-radius:22px;padding:8px;display:flex;flex-direction:column;gap:8px;box-shadow:inset 0 0 0 3px #fff,0 3px 0 #c9d8ee;position:relative}
.fbody{display:flex;gap:8px}.fmain{flex:1 1 72%;display:flex;flex-direction:column;gap:8px;min-width:0}.fdoor{flex:0 0 26%;min-width:0;display:flex}.fdoor .fz{flex:1;border-left:4px dotted #9db7d9;background:#eef5ff}
.fz{background:#fff;border:2px solid #cfdcef;border-radius:14px;padding:6px;min-height:64px}.fzt{font-weight:bold;font-size:13px;color:#1f8f82;margin-bottom:4px}
.fz-1{background:#fff7f2;border-color:#f0d0bd}.fz-3{background:#f1faef;border-color:#bfe0b5;border-bottom-width:6px}.fz-4{background:#eef7ff;border-color:#b5d3f0;border-bottom-width:6px}
.fzc{display:flex;flex-wrap:wrap;gap:6px}.fzempty{font-size:12px}
.frchip{min-height:44px;background:#fff;color:#333;border:1.5px solid #c9d3e3;border-radius:22px;padding:4px 10px;font-size:14px;display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:100%;text-align:left;overflow-wrap:anywhere}
.frchip small{color:#777;font-size:11px}.frchip.soon{border-color:#e0a000;background:#fff8e1}.frchip.on{outline:3px solid #1f8f82;background:#e8efff}
.fdoor .frchip{font-size:12px;padding:4px 6px}
.frsel{border:2px solid #1f8f82}.frmv{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.frmv button{min-height:44px}
ul.frrev li select{min-width:7em}
.nsb{min-width:40px}.nsbox{border-left:5px solid #2e7d32;margin:6px 0}.nslinks{display:flex;flex-wrap:wrap}.nslinks a.chip{text-decoration:none;display:inline-flex;align-items:center}
.cmp3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.cmpc{margin:0}.cmpr{font-weight:bold;font-size:15px}.cmpc.cheap{border-top:5px solid #2e7d32}.cmpc.better{border-top:5px solid #1f8f82}.cmpc.luxury{border-top:5px solid #b8860b}
.ord .tag{font-weight:bold}.ord.cart{border-left:5px solid #f9a825}.ord.done{opacity:.7}a.btnlink{display:inline-block;background:#ffb72b;color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;font-weight:bold}
.nslinks a.chip,.cmpc a.chip{display:inline-flex!important;width:auto!important;flex:0 0 auto;text-decoration:none;border-radius:16px;padding:6px 12px;min-height:40px;color:#1f8f82;font-weight:bold}
.maplink{display:inline-flex;align-items:center;min-height:44px;padding:0 2px}
.qedit{font-size:16px;line-height:1.5;margin:4px 0}.myq{margin-top:8px}
.req2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0}.req2 button{font-size:16px;font-weight:bold;min-height:52px}.reqbox .rql{display:block;margin-top:6px;font-weight:bold;font-size:14px}.rqself{text-align:right}.rqself a{font-size:14px}
.dlv{border-left:5px solid #2e7d32}.dlv.unk{border-left-color:#f9a825}.dlv.ng{border-left-color:#999;opacity:.85}.dlvh{cursor:pointer;min-height:44px}.tag.rk{background:#ffb72b;color:#fff}.dlvt{width:100%;font-size:14px;border-collapse:collapse}.dlvt th{text-align:left;white-space:nowrap;vertical-align:top;padding:3px 6px 3px 0;color:#555}.dlvt td{padding:3px 0}

.ava,header .hface{object-fit:contain;padding:2px}
