.partner-search{display:block;max-width:1060px;padding:22px}
/* 日付・時刻サマリーバー */
.search-dates{display:grid;grid-template-columns:1.15fr .85fr 1.15fr .85fr;gap:0;border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.search-dates .field{padding:10px 14px 12px;min-width:0;position:relative}
.search-dates .field+.field{border-left:1px solid var(--line)}
.search-dates .field label{margin:0 0 6px}
.search-dates .field:nth-child(1)>label,.search-dates .field:nth-child(3)>label{display:inline-block;background:var(--navy);color:#fff;font-size:.7rem;font-weight:900;letter-spacing:.04em;padding:3px 9px;border-radius:3px;margin:0 0 6px}
.partner-search .search-dates input,.partner-search .search-dates select{height:auto;border:0;border-radius:0;padding:0;font-size:1.28rem;font-weight:900;color:var(--navy);background:transparent}
.search-dates input[type="date"]{pointer-events:none}
.search-dates .field:has(input[type="date"]){cursor:pointer}
.partner-search .search-dates input[type="date"]{padding-right:1.6em}
.search-dates input[type="date"]::-webkit-calendar-picker-indicator{display:none}
.date-cal-icon{position:absolute;right:14px;bottom:15px;width:1.05em;height:1.05em;color:var(--navy);pointer-events:none}
.diagnosis-search-host .search-dates input,.diagnosis-search-host .search-dates select{font-size:1.02rem}
/* 出発場所タブ・返却先トグル */
.search-modes{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin:16px 0;border-bottom:1px solid var(--line);padding:0 0 14px}
.search-modes>div{display:flex;flex-wrap:wrap}
.mode-tabs{gap:6px}
.mode-tabs label,.return-toggle label{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:800;cursor:pointer}
.mode-tabs input,.return-toggle input{position:absolute;opacity:0;width:0;height:0}
.mode-tabs label{padding:9px 14px;color:var(--muted);box-shadow:inset 0 -3px 0 transparent}
.mode-tabs label:has(input:checked){color:var(--navy);box-shadow:inset 0 -3px 0 var(--sun)}
.mode-tabs .fi{width:1.2em;height:1.2em}
.return-toggle{gap:0}
.return-toggle label{padding:9px 16px;border:1px solid var(--navy);color:var(--navy);background:#fff}
.return-toggle label:first-child{border-radius:5px 0 0 5px}
.return-toggle label:last-child{border-radius:0 5px 5px 0;border-left:0}
.return-toggle label:has(input:checked){background:var(--navy);color:#fff}
.mode-tabs label:has(input:focus-visible),.return-toggle label:has(input:focus-visible),.vehicle-choices label:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}
/* 場所・車両タイプ */
.search-places{display:flex;flex-wrap:wrap;gap:14px}
.search-places>.field{flex:1;min-width:0}
.search-places>.vehicle-field{flex:1 1 100%}
.search-places [hidden]{display:none}
.vehicle-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.vehicle-choices label{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:88px;font-size:12px;font-weight:800;line-height:1.3;text-align:center;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 6px;cursor:pointer}
.vehicle-choices label img{width:74px;height:42px;object-fit:contain}
.vehicle-choices input{position:absolute;opacity:0;width:0;height:0}
.vehicle-choices label:has(input:checked){background:#fff6bd;border-color:#d8ae00;box-shadow:inset 0 0 0 1px #d8ae00}
/* こだわり条件・検索ボタン */
.search-options{margin:18px 0}.search-options summary{cursor:pointer;font-size:15px;font-weight:800;padding:10px 0}
.option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:16px;background:#f5f6f7}
.option-grid label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;cursor:pointer}
.option-grid input{accent-color:var(--navy);width:20px;height:20px;flex-shrink:0}
.partner-search>.primary-btn{display:flex;align-items:center;justify-content:center;margin-left:auto;min-width:260px;height:54px;font-size:1.02rem}
/* エリア選択ボタン・エリアマップモーダル */
.area-map-btn{display:flex;align-items:center;gap:8px;width:100%;height:52px;padding:0 14px;border:1px solid #c8cdd1;border-radius:4px;background:#fff;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}
.area-map-btn:hover{border-color:var(--navy)}
.area-map-btn .fi{width:1.1em;height:1.1em;color:var(--navy);flex-shrink:0}
.area-map-btn .area-map-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.area-map-btn .area-map-hint{flex-shrink:0;font-size:.74rem;font-weight:800;color:var(--navy);background:var(--sun);padding:3px 9px;border-radius:999px}
.map-modal{position:fixed;inset:0;z-index:60;background:rgba(3,31,38,.6);display:none;place-items:center;padding:18px}
.map-modal.open{display:grid}
.map-box{background:#fff;border-radius:10px;max-width:980px;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;color:var(--ink)}
.map-head{padding:15px 20px;font-weight:900;border-bottom:1px solid var(--line)}
.map-body{overflow:auto;-webkit-overflow-scrolling:touch}
.map-canvas{position:relative;min-width:640px}
.map-canvas img{display:block;width:100%;height:auto}
.map-spot{position:absolute;margin:0;padding:0;border:2px solid transparent;border-radius:10px;background:transparent;cursor:pointer}
.map-spot:hover,.map-spot:focus-visible{background:rgba(255,205,0,.24);border-color:#d8ae00}
.map-spot.selected{border-color:#e64a2e;background:rgba(230,74,46,.13)}
.map-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}
.map-all{border:1px solid var(--navy);border-radius:999px;background:#fff;font:inherit;font-weight:800;color:var(--navy);cursor:pointer;padding:8px 20px}
.map-all:hover{background:#fff6bd}
.map-all.selected{background:var(--navy);color:#fff}
.map-close{border:0;background:none;font:inherit;font-weight:800;color:var(--navy);cursor:pointer;padding:8px 14px}
/* カレンダーモーダル */
.cal-modal{position:fixed;inset:0;z-index:60;background:rgba(3,31,38,.6);display:none;place-items:center;padding:18px}
.cal-modal.open{display:grid}
.cal-box{background:#fff;border-radius:10px;max-width:720px;width:100%;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;color:var(--ink)}
.cal-head{padding:15px 20px;font-weight:900;border-bottom:1px solid var(--line)}
.cal-months{overflow:auto;padding:6px 20px 14px;display:grid;grid-template-columns:1fr 1fr;gap:4px 30px;align-items:start}
.cal-month-title{text-align:center;font-weight:900;font-size:.95rem;margin:14px 0 6px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal-dow{font-size:.72rem;font-weight:800;padding:4px 0;color:var(--muted)}
.cal-dow.sun,.cal-day.sun{color:#d3402e}
.cal-dow.sat,.cal-day.sat{color:#1668c8}
.cal-day{border:0;background:none;font:inherit;font-size:.88rem;font-weight:700;padding:0;height:36px;border-radius:50%;cursor:pointer;color:var(--ink)}
.cal-day:hover:not(:disabled){background:#fff6bd}
.cal-grid .cal-day:disabled{color:#c4cbcf;cursor:default;background:none}
.cal-day.selected{background:var(--sun);color:var(--navy);font-weight:900}
.cal-foot{padding:10px 14px;border-top:1px solid var(--line);text-align:right}
.cal-close{border:0;background:none;font:inherit;font-weight:800;color:var(--navy);cursor:pointer;padding:8px 14px}
@media(max-width:700px){
.partner-search{padding:14px}
.cal-months{grid-template-columns:1fr;gap:0}
.search-dates{grid-template-columns:1.3fr 1fr}
.search-dates .field:nth-child(n+3){border-top:1px solid var(--line)}
.search-dates .field:nth-child(3){border-left:0}
.search-modes{margin:14px 0;padding-bottom:12px}
.search-places{flex-direction:column}
.vehicle-choices{grid-template-columns:1fr 1fr}
.option-grid{grid-template-columns:1fr 1fr;padding:12px;gap:12px}
.partner-search>.primary-btn{width:100%;min-width:0}
.partner-search .field label{font-size:14px}
.partner-search .field input,.partner-search .field select{font-size:16px}
.partner-search .search-dates input,.partner-search .search-dates select{font-size:1.08rem}
.map-modal{padding:10px}
.area-map-btn{height:47px;padding:0 10px}
}
