.booking-panel{--booking-ink:#183967;--booking-muted:#657896;--booking-line:#dce6f7}
.booking-box{margin:20px 0;padding:22px;background:#f3f7ff;border:1px solid var(--booking-line);border-radius:18px}.booking-box h3{margin:0 0 15px;color:var(--booking-ink)}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-fields label,.booking-search label,.booking-manual label,.booking-night{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:var(--booking-ink)}
.booking-fields input,.booking-fields select,.booking-search input,.booking-manual input{width:100%;min-width:0;box-sizing:border-box;min-height:46px;font:inherit;font-size:16px;border:1px solid #cddaf2;border-radius:10px;background:#fff;padding:9px 12px;color:#233b60}
.booking-search{margin:22px 0}.booking-search>.row{margin-top:8px}.booking-notice{padding:12px 15px;border-radius:10px;background:#eff5ff;color:#345783;font-size:13px;line-height:1.8}.booking-results{display:grid;gap:20px;margin:20px 0}
.booking-card{border:1px solid var(--booking-line);border-radius:18px;background:white;padding:18px;box-shadow:0 5px 16px #254b8708;overflow:hidden}.booking-card-top{display:grid;grid-template-columns:minmax(180px,38%) minmax(0,1fr);gap:20px}.booking-card h3{font-size:20px;line-height:1.5;margin:7px 0 12px;color:#183967;overflow-wrap:anywhere}.booking-eyebrow{font-size:10px;letter-spacing:.16em;color:#647fa8;font-weight:700}
.booking-photo{margin:0;position:relative;background:#edf3ff;border-radius:12px;overflow:hidden;min-width:0}.booking-photo>img{display:block;width:100%;height:220px;object-fit:cover}.booking-photo>figcaption{position:absolute;bottom:0;left:0;right:0;padding:9px 10px;background:linear-gradient(transparent,#142a50e6);padding-top:25px;color:white;font-size:10px;line-height:1.6}.booking-no-photo{min-height:160px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#637d9f;font-size:11px;padding:12px;text-align:center}.booking-no-photo svg{width:36px;height:36px}
.booking-photo-thumb,.booking-photo-sm{width:110px;flex-shrink:0}.booking-photo-thumb>img,.booking-photo-sm>img{height:115px}.booking-photo-thumb figcaption,.booking-photo-sm figcaption{font-size:8px}.booking-photo-thumb .booking-no-photo,.booking-photo-sm .booking-no-photo{min-height:100px}
.booking-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.booking-actions .btn{white-space:normal;min-height:44px}.booking-credit{margin:16px 0;font-size:12px}.booking-credit img{max-width:100%;height:auto}.booking-manual{border-top:1px solid var(--booking-line);padding-top:20px;margin-top:24px}.booking-manual label{margin:12px 0}.booking-manual summary{cursor:pointer;font-weight:700}.booking-plans{padding:14px;background:#f2f6ff;margin-top:15px;border-radius:10px}.booking-plan{display:flex;flex-direction:column;gap:5px;padding:12px 0;border-top:1px solid #dae4f7;color:#2353a0;overflow-wrap:anywhere}.booking-plan span{font-size:12px}
@media(max-width:600px){.booking-box{padding:16px}.booking-card{padding:14px}.booking-card-top{grid-template-columns:1fr;gap:14px}.booking-photo>img{height:210px}.booking-photo-thumb>img,.booking-photo-sm>img{height:110px}.booking-card h3{font-size:18px}.booking-search .row{align-items:stretch}.booking-search .row input{flex:1 1 160px;width:0}.booking-actions .btn{flex:1 1 135px}.booking-fields{gap:12px 9px}.booking-fields label{font-size:12px}}
.booking-panel .btn.primary{background:#2863f6;box-shadow:0 3px 9px #2458ba20;border-color:#2863f6}.booking-panel .choice[aria-pressed="true"]{border-color:#3678f4;background:#eef5ff}.booking-night select{min-height:44px;margin:8px 0}.booking-panel svg{max-width:28px;max-height:28px}
@media(max-width:600px){.booking-fields label:nth-child(-n+2){grid-column:1/-1}.booking-fields input[type=date]{min-height:48px;width:100%;max-width:100%}}
.booking-flow{padding-bottom:60px}.booking-flow .q{margin-bottom:10px}.booking-decisions{margin:24px 0;gap:14px}.booking-decisions .choice{align-items:center;min-height:112px;padding:22px;gap:16px}.booking-choice-icon{background:#eaf2ff;border-radius:16px;width:48px;height:48px;display:grid;place-items:center;color:#2863f6;font-size:26px;flex-shrink:0}.booking-decisions .choice b{font-size:19px}.booking-day-label{display:flex;align-items:center;gap:12px;margin:22px 0 12px;font-size:13px;font-weight:700}.booking-day-label select{font:inherit;min-height:44px;padding:8px;border:1px solid #cddaf2;border-radius:10px;background:white;max-width:100%}.booking-meal-tabs{margin:12px 0 20px}.booking-route{padding:22px;border:1px solid #dce6f7;border-radius:18px;background:#f5f8ff;margin:24px 0}.booking-route h3,.booking-local h3{font-size:18px;margin:7px 0 16px}.booking-route-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.booking-route-line>span{flex:1;min-width:110px;background:white;padding:12px;border-radius:10px;font-size:14px;overflow-wrap:anywhere}.booking-route-line>b{padding:8px 14px;border:1px dashed #75a8ed;border-radius:20px;color:#2863f6;font-size:12px;white-space:nowrap}.booking-route-line>small{flex-basis:100%;font-weight:700}.booking-local{margin:24px 0}.booking-local .chip{background:#f5f9ff;border-color:#d2e2fb}.booking-selected{border-left:3px solid #2863f6;background:#eef5ff;padding:16px 20px;margin:22px 0;border-radius:0 12px 12px 0}.booking-selected>div{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.booking-conditions{margin:22px 0;border:1px solid #dce6f7;border-radius:14px;padding:15px}.booking-conditions summary{cursor:pointer;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.booking-conditions summary span{color:#2863f6;font-weight:700;margin-left:10px}.booking-conditions .booking-box{border:0;padding:10px;margin:10px 0}.booking-fallback{border-top:1px solid #e5ebf7;margin-top:26px;padding-top:14px;font-size:13px;color:#607799}.booking-reason{background:#eff5ff;color:#2d5895;font-size:13px;line-height:1.7;padding:10px 12px;border-radius:9px}.booking-area{display:flex;flex-direction:column;gap:7px;margin:20px 0}.booking-area b{font-size:12px;color:#6a7e9c}.booking-area span{font-size:19px;font-weight:700;color:#183967}.booking-day-picks{margin:18px 0;padding:18px;border:1px solid #dce6f7;border-radius:14px;background:#f7faff}.booking-day-picks h4{margin:0 0 8px;font-size:15px}.booking-day-picks p{font-size:13px;line-height:1.8;margin:0}.booking-flow .booking-search input{min-width:0}.booking-manual input{max-width:100%;box-sizing:border-box}
@media(max-width:600px){.booking-decisions{grid-template-columns:1fr!important;gap:10px}.booking-decisions .choice{min-height:92px;padding:16px}.booking-route{padding:16px}.booking-route-line{gap:6px}.booking-route-line>span{font-size:12px;min-width:80px;padding:9px}.booking-route-line>b{padding:6px 9px;font-size:11px}.booking-day-label{align-items:flex-start;flex-direction:column;gap:6px}.booking-day-label select{width:100%}.booking-flow .booking-search .row{flex-wrap:wrap}.booking-day-picks .booking-actions .btn{flex:1 1 110px}.booking-conditions{padding:12px}.booking-flow{padding-bottom:90px}}

/* The same blue-to-cyan language as the main steps. */
.booking-panel .btn.primary{background:linear-gradient(110deg,#2863ff,#2eacd6);border-color:transparent;color:#fff}
.booking-decisions .booking-choice-icon{width:80px;height:80px;background:transparent;border-radius:18px}
.booking-choice-icon img{display:block;width:100%;height:100%;object-fit:contain}
.booking-decisions .choice>div:last-child{min-width:0}.booking-decisions .choice b{font-size:18px}.booking-decisions .choice span{line-height:1.6}
.booking-panel :is(button,a,input,select):focus-visible{outline:3px solid #8db8ff;outline-offset:3px}
.booking-panel .chip[aria-pressed="true"]{background:#eaf2ff;border-color:#2863ff;color:#1e50c3}
.booking-stay-advice{padding:20px;border:1px solid #cbdfff;background:linear-gradient(120deg,#f0f5ff,#f0fbff);border-radius:16px;margin:20px 0}.booking-stay-advice h3{margin:0 0 8px;font-size:17px;color:#1d4787}.booking-stay-advice p{font-size:13px;line-height:1.8;margin:8px 0}
.booking-nights{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:18px 0}.booking-night-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;padding:15px;border:1px solid #dce6f7;border-radius:12px;background:#fff;color:#233b60;font:inherit;cursor:pointer;min-height:105px}.booking-night-card[aria-pressed="true"]{border-color:#2863ff;background:#eef5ff;box-shadow:inset 0 0 0 1px #2863ff}.booking-night-card span{font-size:13px;overflow-wrap:anywhere}.booking-night-card small{color:#617697;line-height:1.5}
@media(max-width:600px){.booking-decisions .booking-choice-icon{width:68px;height:68px}.booking-decisions .choice b{font-size:17px}.booking-nights{grid-template-columns:1fr}.booking-stay-advice{padding:16px}}
/* Constraint editor and timeline actions */
.planner-panel,.planner-order,.planner-status{margin:16px 0;padding:16px;background:#f3f8ff;border:1px solid #c7daf0;border-radius:14px;color:#16385e}.planner-panel summary,.planner-rule summary{cursor:pointer;font-weight:700;line-height:1.7}.planner-rule{padding:12px 0;border-bottom:1px solid #cad8e7}.planner-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:14px 0}.planner-fields label,.planner-order label{display:flex;flex-direction:column;gap:6px;font-size:13px}.planner-fields input,.planner-fields select,.planner-order select{max-width:100%;min-width:0;padding:9px;border:1px solid #acc4df;border-radius:8px;background:#fff;color:#183f6d}.planner-fields input[type=checkbox]{width:18px;height:18px}.planner-week{display:flex;flex-wrap:wrap;gap:10px}.planner-week label{align-items:center}.planner-proposals{display:flex;gap:8px;flex-wrap:wrap}.planner-event .stop{display:block!important;background:#f0f7ff}.planner-event .btn{margin:8px 5px 0 0}.planner-status .banner{margin:0 0 12px}.planner-status ul{padding-left:20px}.planner-order{max-width:900px}.planner-photo-tools{display:flex;flex-wrap:wrap;gap:5px;font-size:11px}.planner-photo-tools input{max-width:100%}.planner-route-meta{padding:9px;background:#eaf3ff;color:#174777;border-radius:8px;font-size:13px}.planner-route-meta a{margin-left:8px}.planner-route-compare{margin:12px 0}.planner-event .sm{margin:7px 0}
@media(max-width:600px){.planner-panel,.planner-status{padding:12px}.planner-event .btn{white-space:normal;text-align:left}.planner-fields{grid-template-columns:1fr}.planner-order select{width:100%}}
.planner-photo-block{width:110px;flex:none;min-width:0}.planner-photo-block .booking-photo{width:100%}.planner-photo-tools .linkbtn{font-size:11px;padding:4px 0}.planner-photo-tools summary{font-size:10px;cursor:pointer}.planner-photo-tools input{width:100%;font-size:12px}
.budget-editor{margin:20px 0;padding:18px;border:1px solid #bed2ed;background:#f2f7ff;border-radius:16px}.budget-editor>label{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#214570;font-weight:600}.budget-editor input[type=number]{width:130px;max-width:100%;padding:10px;border:1px solid #abc4e2;border-radius:10px;background:white}.budget-check{display:flex;align-items:center;gap:9px;font-size:14px;margin:12px 0}.budget-check input{width:18px;height:18px;accent-color:#245b98}.budget-status{font-size:13px;color:#24568b;background:#eef5ff;border-radius:8px;padding:9px 12px}.food-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.food-choices .choice{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 10px;background:#f5f9ff;border:1px solid #c7d9ee;border-radius:16px;color:#214570;min-width:0}.food-choices .choice[aria-pressed=true]{background:#e2efff;border:2px solid #2c639f}.food-choices .choice span{font-size:12px;line-height:1.6}.food-choices .choice img{object-fit:contain}.booking-search input{min-width:0}.external-login{max-width:520px;margin:auto}.external-login textarea{width:100%;box-sizing:border-box;min-height:90px;font-size:13px}.external-login .btn{margin:8px 0;white-space:normal}@media(max-width:520px){.food-choices{gap:7px}.food-choices .choice{padding:13px 6px}.food-choices .choice b{font-size:13px}.food-choices .choice img{width:46px;height:46px}.budget-editor{padding:14px}.budget-editor>label{font-size:14px}}
/* v8: 食事・宿の希望と予算を、1つの小さな欄にまとめる */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.food-choices.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.pref-bar{margin:16px 0;padding:12px 14px;border:1px solid #c7d9ee;background:#f5f9ff;border-radius:14px}
.pref-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pref-row .pref-q{flex:1 1 220px;min-width:0;margin:0}
.pref-row .pref-q input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #abc4e2;border-radius:10px;background:#fff;font:inherit}
.pref-row select{padding:10px 8px;border:1px solid #abc4e2;border-radius:10px;background:#fff;font:inherit;color:#163d70;max-width:100%}
.pref-row .btn{flex:none;margin:0}.pref-row .pref-check{margin:0}
.pref-label{font-size:13px;font-weight:700;color:#214570}
.pref-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
.pref-chips>span{font-size:12px;color:#5b6f86;margin-right:2px}
.pref-chips .chip{padding:5px 10px;font-size:12px}
.pref-check{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;font-size:12px;color:#425a74}
.pref-check input{width:16px;height:16px;accent-color:#245b98}
.pref-hint{margin:6px 0 0;font-size:11.5px;color:#5b6f86;line-height:1.6}
.stay-plan{margin:16px 0;padding:12px 14px;border:1px solid #c7d9ee;background:#f5f9ff;border-radius:14px}
.stay-plan-h{margin:0 0 8px;font-size:13px;font-weight:700;color:#214570}
.stay-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stay-opt{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid #c7d9ee;border-radius:12px;background:#fff;color:#214570;cursor:pointer;font:inherit}
.stay-opt b{font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stay-opt small{font-size:11.5px;color:#5b6f86}
.stay-opt[aria-pressed=true]{border:2px solid #2c639f;background:#e8f2ff;padding:9px 11px}
.stay-rec{font-size:10.5px;font-weight:700;color:#fff;background:#e0644f;border-radius:999px;padding:1px 7px}
.stay-why{margin:8px 0 0;font-size:12px;color:#425a74;line-height:1.6}
@media(max-width:520px){.pref-row .pref-q{flex-basis:100%}.pref-row select{flex:1 1 auto}.stay-opts{grid-template-columns:1fr}}
/* v9: 公共交通オープンデータ（飛行機の便・電車の時刻） */
/* v10：遠くへの移動（飛行機・新幹線）と、時刻の登録 */
.odpt-ports{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.odpt-ports label{display:flex;flex-direction:column;gap:4px;flex:1 1 130px;min-width:0;font-size:12px;font-weight:700;color:var(--muted)}
.odpt-ports select{padding:9px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;font-weight:400;color:var(--ink);width:100%}
.odpt-arrow{padding-bottom:10px;color:var(--muted)}
.odpt-flights{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}
.odpt-fl{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left;min-height:44px}
.odpt-fl b{font-size:14px}.odpt-fl small{font-size:11px;color:var(--muted)}
.odpt-fl[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:6px 8px}
.odpt-credit{margin:10px 0 0;font-size:11px;color:var(--muted);line-height:1.5}
.odpt-leg{display:block;font-size:12px;color:var(--muted);margin:2px 0}
.odpt-src{display:inline-block;font-size:10.5px;color:var(--muted);margin-left:4px}
.pill.est{background:transparent;color:var(--warn);border:1px dashed var(--warn);padding:0 8px}
.ride-cards{display:grid;gap:10px;margin-top:10px}
@media (min-width:720px){.ride-cards{grid-template-columns:1fr 1fr}}
.ride-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface);min-width:0}
.ride-hd{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.ride-hd b{font-size:15px;color:var(--ink)}
.ride-route{font-size:13px;color:var(--ink);margin:0 0 6px}
.ride-hd .ride-route{margin:0}
.ride-state{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0;font-size:14px}
.ride-est{font-size:13px;color:var(--muted)}
.ride-sub{font-size:12px;color:var(--muted);margin:6px 0 4px}
.ride-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ride-ocr{position:relative;overflow:hidden;cursor:pointer}
.ride-ocr svg{width:16px;height:16px;margin-right:4px;vertical-align:-3px}
.ride-ocr input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.ride-links{display:flex;gap:4px 12px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:13px}
.ride-links span{font-size:12px;color:var(--muted)}
.ridereg{display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:13px}
.fixno{font-size:13px;margin-left:4px}
.conflegend{display:flex;gap:4px 6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:8px 0}
.conflegend span:not(.pill){margin-right:10px}
.rreg-ocr{margin:12px 0;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.rreg-ocr>small{display:block;font-size:11.5px;color:var(--muted);margin-top:6px}
.rreg-ocr .status{margin:8px 0 0}
.rreg-times{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
.rreg-times>span{width:100%;font-size:12px;color:var(--muted)}
.rreg-form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.rreg-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--muted)}
.rreg-form input{flex:none;height:auto;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;background:var(--surface);color:var(--ink);min-width:0;width:100%;box-sizing:border-box}
.rreg-tm{display:flex;align-items:flex-end;gap:8px}
.rreg-tm label{flex:1;min-width:0}
.rreg-tm>span{padding-bottom:12px;color:var(--muted)}
.rreg-tm label.on input{border:2px solid var(--accent);padding:9px}
.rreg-btns{justify-content:flex-end;margin-top:14px;gap:8px}
.rreg-ocr .btn.ghost{background:var(--surface);border:1px solid var(--line)}
.ride-ocr.is-off{opacity:.5;pointer-events:none}
/* 宿泊（STEP7）v2：booking/stay2.js */
.stay2 .stay2-h{margin:18px 0 8px;font-size:15px;font-weight:800;color:var(--ink)}
.stay2-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.stay2-row .stay2-h{margin:0}
.stay2-pills{display:flex;gap:8px;flex-wrap:wrap}
.stay2-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.stay2-pill[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:8px 15px}
.stay2-pill i{font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--hot);border-radius:999px;padding:1px 7px}
.stay2-why{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
.stay2-nights{display:flex;gap:8px;overflow-x:auto;margin:14px 0 4px;padding-bottom:4px}
.stay2-night{flex:0 0 auto;min-width:120px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.stay2-night[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:8px 11px}
.stay2-night span{font-size:12px;color:var(--muted)}
.stay2-night small{font-size:12px;color:var(--accent);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stay2-block{margin-top:6px}
.stay2-where{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stay2-where-o{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left;min-width:0}
.stay2-where-o b{font-size:14.5px}
.stay2-where-o span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.stay2-where-o[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:11px}
.stay2-chips{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.stay2-more{margin:14px 0 6px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.stay2-more>summary{cursor:pointer;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:8px}
.stay2-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:12px}
.stay2-dates{margin-top:12px}
.stay2-dates>summary{cursor:pointer;font-size:13px;color:var(--muted)}
.stay2-go{margin-top:12px;width:100%;max-width:360px}
.stay2-tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.stay2-tags span{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--ok-soft,#e3f7ee);color:var(--ok,#0e9f6e);font-weight:700}
.stay2-tags span.unk{background:var(--warn-soft,#fff4e0);color:var(--warn,#b45309)}
.food2-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
@media(max-width:600px){.stay2-where{grid-template-columns:1fr}.stay2-where-o{flex-direction:row;align-items:center;justify-content:space-between}}
.odpt-one{grid-template-columns:minmax(0,220px)}
.odpt-more{display:inline-block;margin-top:8px;font-weight:700}
.stay2-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.stay2-price b{font-size:20px;color:var(--ink)}
.stay2-price span{font-size:12.5px;color:var(--muted)}
.stay2-plans{list-style:none;margin:4px 0 8px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.stay2-plans li+li{border-top:1px solid var(--line)}
.stay2-plans a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;color:var(--ink);text-decoration:none;font-size:13px}
.stay2-plans a span{min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.stay2-plans a b{flex:none;font-size:14px;color:var(--accent)}
.stay2-plans i{font-style:normal;font-size:11px;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.booking-plan .plan-price{font-style:normal;font-weight:800;font-size:15px;color:var(--accent)}
.booking-plan .plan-price small{font-size:11px;font-weight:600;color:var(--muted)}
/* 食事（STEP6）v3：booking/food2.js */
.food3-grid{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.food3-day p{margin:0 0 6px;font-weight:800;font-size:14px}
.food3-day small{font-weight:500;color:var(--muted);margin-left:4px}
.food3-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.food3-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.food3-cell b{font-size:13px}
.food3-cell span{font-size:12px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.food3-cell.done span{color:var(--ok,#0e9f6e);font-weight:700}
.food3-cell.off{opacity:.6}
.food3-cell[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:7px 9px}
.food3-box{margin-top:6px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.food3-h{margin:0 0 4px;font-size:17px}
.food3-near{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.food3-near b{color:var(--accent)}
.food3-picked p{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0}
.food3-picked small{color:var(--muted)}
.food3-seg{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:10px 0 12px}
.food3-seg button{padding:11px 8px;border:0;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.food3-seg button+button{border-left:1px solid var(--line)}
.food3-seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
.food3-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.food3-form input{flex:1 1 180px;min-width:0}
.food3-dishes{margin:4px 0 10px}
.food3-manual{margin-top:10px}
.food3-skip{margin:12px 0 0;text-align:right}
@media(max-width:420px){.food3-cell{padding:7px 8px}.food3-cell[aria-pressed=true]{padding:6px 7px}}
.food3-form input{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.food3-form select{height:44px;border-radius:10px}
.food3-unknown{margin:-2px 0 8px;font-size:13px}
/* 食事（STEP6）v4：booking/food4.js */
.f4-q{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:18px 0 8px;font-size:16px;font-weight:800;color:var(--ink)}
.f4-q small{font-size:12.5px;font-weight:600;color:var(--muted)}
.f4-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:800;flex:none}
.f4-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 6px}
.f4-seg button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.f4-seg button b{font-size:15.5px}
.f4-seg button span{font-size:12.5px;color:var(--muted)}
.f4-seg button:hover{border-color:var(--accent)}
.f4-seg button[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);padding:11px 13px}
.f4-seg button[aria-pressed=true] b::before{content:"✓ ";color:var(--accent)}
.f4-note{margin:8px 0 0;font-size:13px;color:var(--muted)}
.f4-form{display:flex;gap:8px;align-items:center;margin:10px 0 4px}
.f4-form input{flex:1 1 auto;min-width:0;height:46px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.f4-form .btn{flex:none;height:46px}
.f4-own{margin-top:10px}
.f4-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.f4-res{margin-top:10px}
.f4-h{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:15px}
.f4-h small{font-size:12px;font-weight:600;color:var(--muted)}
.f4-h .spin{margin:0}
.f4-sub{margin:8px 0 6px;font-size:12.5px;font-weight:700;color:var(--muted)}
.f4-dish{padding:12px 14px 6px;margin:12px 0;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.f4-dish>.f4-h{margin-top:2px;font-size:16.5px}
.f4-list{display:flex;flex-direction:column;gap:8px}
.f4-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.f4-card.sel{border:2px solid var(--ok);background:var(--ok-soft);padding:9px}
.f4-ph{position:relative;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--accent-soft);display:grid;place-items:center;font-weight:800;font-size:20px;color:var(--accent)}
.f4-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.f4-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.f4-main b{font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
.f4-main small{font-size:12px;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.f4-addr{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.f4-src{align-self:flex-start;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--line);color:var(--ink)}
.f4-src-famous{background:var(--hot-soft);color:var(--hot)}
.f4-src-hotpepper{background:#fde7ea;color:#c8102e}
.f4-src-osm{background:var(--accent-soft);color:var(--accent)}
.f4-act{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.f4-act .btn{min-width:84px;white-space:nowrap}
.f4-act a{font-size:12px}
.f4-card.sel .f4-act .btn{background:var(--ok);border-color:var(--ok);color:#fff}
.f4-more{margin:6px 0 2px}
.f4-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 6px;font-size:12.5px}
.f4-links span{color:var(--muted);font-weight:700}
.f4-empty{margin:6px 0;padding:10px 12px;border-radius:12px;background:var(--warn-soft);font-size:13px}
.f4-manual{margin:12px 0 0;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}
.f4-manual summary{cursor:pointer;font-size:13.5px;font-weight:700}
.f4-manual label{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:12.5px;font-weight:700;color:var(--muted)}
.f4-manual input{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.f4-picked{margin:10px 0 4px;padding:12px 14px;border-radius:16px;background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}
.f4-picked-h{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.f4-picked-h span{font-size:12px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--ok);color:#fff}
.f4-picked ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.f4-picked li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px}
.f4-picked li small{color:var(--muted);font-size:12px}
.f4-picked .f4-note{margin-top:6px}
.f4-target{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:10px 12px;border-radius:12px;background:var(--accent-soft);font-size:13.5px}
.f4-mealbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 14px;border-radius:14px;background:var(--hot-soft)}
.f4-mealbar div{display:flex;flex-direction:column;gap:1px;min-width:0}
.f4-mealbar span{font-size:12.5px;color:var(--muted)}
/* 食事の順番を変える（予定表） */
.f4sw-help{margin:4px 0 10px;font-size:13.5px}
.f4sw-grid{display:flex;flex-direction:column;gap:10px}
.f4sw-day>p{margin:0 0 6px;font-weight:800;font-size:14px}
.f4sw-day small{font-weight:500;color:var(--muted);margin-left:4px}
.f4sw-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.f4sw-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;min-height:58px;padding:8px 9px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.f4sw-cell b{font-size:12.5px;color:var(--muted)}
.f4sw-cell span{font-size:12.5px;font-weight:700;line-height:1.35;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.f4sw-cell:not(.has) span{font-weight:500;color:var(--muted)}
.f4sw-cell.has{border-color:color-mix(in srgb,var(--hot) 45%,var(--line));background:var(--hot-soft)}
.f4sw-cell.sel{border:2px solid var(--accent);background:var(--accent-soft);padding:7px 8px}
.f4sw-cell.off{opacity:.45;cursor:not-allowed}
.f4sw-cell.lock{cursor:not-allowed}
.f4sw-cell small{font-size:10.5px;color:var(--muted)}
.f4sw-extra-h{margin:14px 0 6px;font-size:13px;font-weight:700}
.f4sw-foot{justify-content:space-between;align-items:center;margin-top:14px}
@media(max-width:420px){.f4-card{grid-template-columns:48px minmax(0,1fr);}.f4-ph{width:48px;height:48px}.f4-act{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-end;gap:12px}.f4sw-cell{padding:7px 6px}.f4sw-cell.sel{padding:6px 5px}.f4-seg button{padding:10px 11px}.f4-seg button[aria-pressed=true]{padding:9px 10px}}
/* 予定表：長いラベル（カフェ・スイーツなど）で右の「動かす」がはみ出さないように */
.tl .stop.hasimg>div:not(.mv){min-width:0}
.tl .stop .nm .pill{white-space:normal;max-width:100%;border-radius:10px}
@media(max-width:480px){.tl .planner-photo-block{width:78px}.tl .planner-photo-block .booking-photo-sm{width:78px}.tl .planner-photo-block .booking-photo-sm>img{height:78px}.tl .planner-photo-block .booking-no-photo{min-height:78px;font-size:9.5px;padding:6px}.tl .planner-photo-tools .linkbtn{font-size:10.5px}}
.tl .f4-swapbtn{color:var(--accent);font-weight:700;text-decoration:none;white-space:nowrap}
.f4-act a{display:inline-flex;align-items:center;min-height:36px;padding:0 4px}
.f4-picked .linkbtn{min-height:36px;padding:0 8px}
.f4-links a{display:inline-flex;align-items:center;min-height:34px}

/* Food photos and compact place cards (shared across all prefectures). */
.food-photo{position:relative;margin:0;min-width:0;width:76px;flex:none;color:var(--muted)}
.food-photo>img{display:block;width:100%;height:76px;object-fit:cover;border-radius:10px;background:var(--accent-soft)}
.food-photo-label{position:absolute;top:56px;left:0;right:0;height:20px;display:grid;place-items:center;border-radius:0 0 10px 10px;background:#172b47b8;color:white;font-size:9px;line-height:1.2;white-space:nowrap}
.food-photo figcaption{font-size:9px;line-height:1.35;overflow-wrap:anywhere;margin-top:3px}
.food-photo figcaption a{color:var(--muted);text-decoration:underline}
.food-photo-empty{height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--accent-soft);border-radius:10px;font-size:10px}
.food-photo-empty svg{width:22px;height:22px}.food-photo-empty .linkbtn{font-size:10px;padding:2px}
.food-photo-card,.food-photo-hero{width:100%}.food-photo-card>img,.food-photo-hero>img{height:200px}.food-photo-card .food-photo-label,.food-photo-hero .food-photo-label{top:180px}
.f4-card{grid-template-columns:76px minmax(0,1fr) auto;align-items:start}
.f4-act{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;max-width:110px}
.f4-act .btn{grid-column:1/-1;min-height:40px;min-width:78px}
.f4-act a{min-height:32px;justify-content:center;font-size:11px}
.f4-main small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.f4-main .f4-addr{-webkit-line-clamp:1}
.f4-dish{padding:0;overflow:hidden;margin:8px 0}
.f4-dish-heading{margin:0;font-size:15px}
.f4-dish-heading button{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 14px;border:0;background:var(--surface);color:var(--ink);font:inherit;font-weight:750;text-align:left;cursor:pointer}
.f4-dish-heading button>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.f4-dish-heading small{font-size:12px;color:var(--muted);font-weight:500}
.f4-chevron{font-size:21px;line-height:1;transition:transform .15s}
.f4-dish.is-open .f4-chevron{transform:rotate(180deg)}
.f4-dish.is-open .f4-dish-heading button{background:var(--accent-soft);color:var(--accent)}
.f4-dish-body{padding:8px 12px 10px}
.f4-loading{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;margin:4px 0 8px}
.wish-list{display:grid;gap:10px}
.wish-card{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-width:0}
.wish-overview{display:flex;gap:12px;padding:12px 44px 10px 12px;align-items:start;min-width:0}
.wish-main{flex:1;min-width:0}
.wish-main .nameedit{width:100%;font-size:16px;font-weight:750;line-height:1.4;padding:0;min-width:0;margin:0}
.wish-status{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:11px;margin:5px 0;color:var(--muted)}
.wish-status .is-ok{color:var(--ok)}.wish-status .is-pending{color:var(--warn)}
.wish-when{font-size:12px;margin:4px 0;color:var(--ink)}
.wish-address{font-size:11px;margin:4px 0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wish-card>.x{position:absolute;top:3px;right:3px;width:38px;height:38px;min-height:38px;padding:0}
.wish-settings{border-top:1px solid var(--line);margin:0}
.wish-settings>summary{cursor:pointer;padding:8px 12px;min-height:40px;box-sizing:border-box;font-size:12px;font-weight:650;color:var(--accent)}
.wish-settings>summary span{font-weight:400;color:var(--muted);font-size:11px;margin-left:10px}
.wish-settings-body{padding:0 12px 12px;font-size:12px}
.wish-settings-body .row{gap:10px;flex-wrap:wrap}
.wish-settings-body select{font-size:14px;min-height:40px;max-width:100%}
.wish-settings-body .linkbtn{min-height:40px}
.wish-settings-body .mealrow{padding:8px;gap:5px}
.wish-settings-body .mealrow .chip{min-height:36px;padding:4px 9px;font-size:12px}
.wish-photo-settings{margin-top:8px}.wish-photo-settings summary{cursor:pointer;min-height:32px;display:list-item}
.wish-photo-settings label{display:block}.wish-photo-settings input{width:100%;max-width:100%;font-size:16px}
.wish-overview .ph-thumb,.wish-overview .booking-photo-thumb{width:76px;height:76px;flex:none}
.wish-overview .booking-photo-thumb>img{height:76px}
.wish-overview .booking-photo-thumb .booking-no-photo{min-height:76px;padding:4px}
@media(max-width:600px){
 .wish-overview{gap:9px;padding:10px 38px 8px 10px}
 .wish-overview .food-photo,.wish-overview .ph-thumb,.wish-overview .booking-photo-thumb{width:64px}
 .wish-overview .food-photo>img,.wish-overview .food-photo-empty,.wish-overview .ph-thumb,.wish-overview .booking-photo-thumb,.wish-overview .booking-photo-thumb>img{height:64px}
 .wish-overview .food-photo-label{top:46px;height:18px;font-size:8px}
 .wish-main .nameedit{font-size:16px;min-height:26px}
 .wish-status{gap:2px 7px;font-size:10px}.wish-when{font-size:11px}.wish-address{font-size:10px}
 .wish-settings>summary{padding:9px 10px;min-height:40px}
 .f4-card{grid-template-columns:64px minmax(0,1fr);gap:8px;padding:9px}
 .f4-card.sel{padding:8px}
 .f4-card .food-photo{width:64px;grid-row:1/3}
 .f4-card .food-photo>img,.f4-card .food-photo-empty{height:64px}
 .f4-card .food-photo-label{top:46px;height:18px;font-size:8px}
 .f4-main b{font-size:13px}.f4-main small{font-size:11px}
 .f4-act{grid-column:2;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:4px 10px;max-width:none}
 .f4-act .btn{min-width:70px;min-height:38px;padding:6px 12px;font-size:12px;order:3;margin-left:auto}
 .f4-act a{min-height:36px;padding:0;font-size:11px}
 .f4-dish-body{padding:8px}.f4-dish-heading button{min-height:48px;padding:10px 12px}
 .f4-seg button b{font-size:14px}.f4-seg button span{font-size:11px}
 .f4-links{gap:3px 10px;font-size:11px}.f4-links span{display:none}
 .f4-chips{gap:6px}.f4-chips .chip{min-height:40px;font-size:12px;padding:6px 10px}
}

/* Attribution stays one line until requested, including on compact phone cards. */
.food-photo figcaption summary{cursor:pointer;min-height:24px;display:flex;align-items:center;text-decoration:underline}
.food-photo figcaption details[open]{overflow-wrap:anywhere}
.food-photo-empty a{font-size:10px;min-height:24px;display:flex;align-items:center;text-decoration:underline}

/* 料理イメージ（その土地の名物の写真）。お店の写真と見分けられるよう、ラベルの色を変える */
.food-photo-label.is-dish{background:#6b3f10c9}
.food-photo>img{transition:opacity .2s}
.food-photo figcaption details{font-size:10px}

.planner-order-sum{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px}.planner-order-sum b{margin-right:6px;color:#0b5cad}
.ride-book{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:10px}.ride-book>span{font-size:12px;color:var(--muted,#667);margin-right:2px}.ride-book .btn{white-space:normal;text-align:left}.ride-book-note{margin:6px 0 0;font-size:11.5px}
