/* Shared cabin rendering; each model supplies its own chairs and benches. */
.fortuner-cabin{--fc-ink:#17345b;--fc-muted:#647991;--fc-line:#a9bdd1;--fc-floor:#f5f8fc;--fc-free:#087f5b;--fc-free-ink:#ffffff;--fc-taken:#ffeff0;--fc-blue:#0066ff;container-type:inline-size;width:100%;max-width:288px;min-width:0;margin:16px auto;color:var(--fc-ink);font-family:inherit}
.fortuner-frame{position:relative;isolation:isolate;width:100%;aspect-ratio:320/340;background:url('/static/images/fortuner-body.svg?v=7') center/100% 100% no-repeat}
.fortuner-cabin :is(.fortuner-grid,.booking-seat-grid,.ev-cabin){position:absolute!important;inset:0;display:block!important;width:100%;height:100%;padding:0!important;margin:0!important;max-width:none!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.fortuner-frame:has(.fc-front-label){margin-top:26px}.fortuner-cabin .fc-front-label{position:absolute;top:-24px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:5px;height:18px;text-align:center;white-space:nowrap;font-size:10px;font-weight:600;color:var(--muted,#647991)}.fortuner-cabin .fc-front-label svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;transform:rotate(180deg)}
.fortuner-cabin .fc-driver,.fortuner-cabin .fc-place,.fortuner-cabin .booking-seat-grid>.booking-seat.fc-place,.fortuner-cabin .ev-cabin>.ev-seat.fc-place{position:absolute!important;box-sizing:border-box;top:14.706%;width:28.75%;height:18.824%;min-width:0!important;min-height:0!important;max-height:none!important;margin:0!important;padding:4px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1.5px solid var(--fc-line);border-radius:12px;background:#f4f8fc;box-shadow:0 3px 0 -1px #cfdae7;font:inherit;line-height:1.2;text-align:center;overflow:visible;transform:none;z-index:1}
.fortuner-cabin .fc-driver{left:12.5%;background:linear-gradient(#d9e3ed 0 10px,#eaf0f6 10px);color:var(--fc-muted);font-size:11px;box-shadow:0 3px 0 -1px #c3d0df}
.fortuner-cabin .fc-driver>svg{display:none}.fortuner-cabin .fc-driver>span,.fortuner-cabin .fc-driver>small{font-size:11px;font-weight:500;color:var(--fc-muted)}
.fortuner-cabin .fc-driver:before,.fortuner-cabin .fc-place[data-seat-label="1"]:before{content:'';position:absolute;top:-8px;left:29%;width:42%;height:10px;border:1.5px solid var(--fc-line);border-radius:5px;background:#dfe9f3}
.fortuner-cabin .fc-place[data-seat-label="1"]{left:58.75%!important;background:linear-gradient(#dde8f3 0 10px,#f6f9fc 10px)}
.fortuner-cabin .fc-place[data-row="2"]{top:46.471%!important;height:18.824%!important}.fortuner-cabin .fc-place[data-row="3"]{top:75.294%!important;height:18.824%!important}
.fortuner-cabin .fc-place:is([data-seat-label="2"],[data-seat-label="4"]){left:11.25%!important;width:38.75%!important}.fortuner-cabin .fc-place:is([data-seat-label="3"],[data-seat-label="5"]){left:50%!important;width:38.75%!important}
.fortuner-cabin .fc-place[data-bench="1"],.fortuner-cabin .booking-seat-grid>.booking-seat.fc-place[data-bench="1"],.fortuner-cabin .ev-cabin>.ev-seat.fc-place[data-bench="1"]{border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;min-height:0!important;margin:0!important}
.fortuner-cabin .fc-place>strong,.fortuner-cabin .fc-place .fc-number{display:grid;place-items:center;flex:none;width:31px;height:31px;padding:0;margin:0;border:1px solid #087f5b;border-radius:50%;background:var(--fc-free);color:var(--fc-free-ink);font-size:18px!important;line-height:1;font-weight:800;letter-spacing:0}
.fortuner-cabin .fc-place:not([data-state="free"])>strong{background:var(--fc-taken);border-color:#f4b8bf;border-radius:50%;color:#c83c4b}
.fortuner-cabin .fc-name{font-size:11px!important;line-height:14px;font-weight:600;color:#196947;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fortuner-cabin .fc-place:not([data-state="free"]) .fc-name{color:#52657a}
.fortuner-cabin .fc-place>.fc-fee,.fortuner-cabin .fc-place>small,.fortuner-cabin .fc-own{display:none!important}
.fortuner-cabin .fc-face{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;overflow:hidden;background:#dce9fb;color:#1761c6;font-size:15px;font-weight:800;line-height:1}
.fortuner-cabin .fc-face img{width:100%;height:100%;object-fit:cover}.fortuner-cabin .fc-face svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.fortuner-cabin .fc-place:has(.fc-face:not([hidden]))>strong{position:absolute;top:5px;left:7px;width:auto;height:auto;border:0;border-radius:0;background:none;font-size:11px!important;color:var(--fc-muted)}
.fortuner-cabin .fc-bench{position:absolute;left:11.25%;width:77.5%;height:18.824%;min-height:0!important;margin:0!important;padding:0!important;box-sizing:border-box;border:1.5px solid var(--fc-line);border-radius:13px;background:linear-gradient(#c6d5e5,#c6d5e5) center 21px/1px calc(100% - 30px) no-repeat,linear-gradient(#dce7f1 0 12px,#f4f8fc 12px);box-shadow:0 3px 0 -1px #c5d3e2;z-index:0;pointer-events:none}
.fortuner-cabin .fc-bench[data-row="2"]{top:46.471%}.fortuner-cabin .fc-bench[data-row="3"]{top:75.294%}
.fortuner-cabin .fc-bench:before,.fortuner-cabin .fc-bench:after{content:'';position:absolute;top:12px;bottom:7px;width:6px;height:auto;min-height:0;padding:0;margin:0;border:1px solid var(--fc-line);border-radius:5px;background:#dbe6f0;transform:none;box-shadow:none}
.fortuner-cabin .fc-bench:before{left:-5px;right:auto}.fortuner-cabin .fc-bench:after{right:-5px;left:auto}
.fortuner-cabin .fc-bench-label{position:absolute;left:0;right:0;top:-31px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;line-height:16px;color:#526b85;white-space:nowrap}.fc-bench-label b{font-weight:700}.fc-bench-label>span{font-size:10px;color:#657b91}
.fortuner-cabin .fc-headrests{position:absolute;inset:-8px 0 auto;height:11px;display:block}.fortuner-cabin .fc-headrests:before,.fortuner-cabin .fc-headrests:after{content:'';position:absolute;width:15%;height:100%;border:1px solid var(--fc-line);border-radius:5px;background:#dfe9f3}.fortuner-cabin .fc-headrests:before{left:17.5%}.fortuner-cabin .fc-headrests:after{right:17.5%}
/* A tap never frames a chair or a rectangular half of the shared bench. */
.fortuner-cabin .fc-place,.fortuner-cabin .seat-support-hit{outline:none!important}
.fortuner-cabin .fc-place:is(.is-selected,.selected,.fc-mine)>strong,.fortuner-cabin .fc-place:has(>input:checked)>strong{background:var(--fc-blue)!important;border-color:var(--fc-blue)!important;color:#fff!important}
.fortuner-cabin .fc-place:is(.is-selected,.selected,.fc-mine) .fc-face,.fortuner-cabin .fc-place:has(>input:checked) .fc-face{background:var(--fc-blue);color:#fff}
.fortuner-cabin .fc-place:is(.is-selected,.selected,.fc-mine) .fc-name,.fortuner-cabin .fc-place:has(>input:checked) .fc-name{color:#0055cf}
.fortuner-cabin .fc-place:has(.fc-face):is(.is-selected,.selected,.fc-mine)>strong{background:none!important;color:#0055cf!important}
/* Keyboard focus stays on the circular marker, separate from blue selection. */
.fortuner-cabin .fc-place:is(:focus-visible,:has(>input:focus-visible),:has(>.seat-support-hit:focus-visible)):not(:has(.fc-face:not([hidden])))>strong,.fortuner-cabin .fc-place:is(:focus-visible,:has(>input:focus-visible),:has(>.seat-support-hit:focus-visible)) .fc-face:not([hidden]){outline:2px dashed var(--fc-ink);outline-offset:3px}
.fortuner-cabin .fc-place>input[type=radio]{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.fortuner-cabin label.fc-place{cursor:pointer}
.fortuner-cabin .fc-place>svg,.fortuner-cabin .seat-upholstery,.fortuner-cabin [data-seat-owner],.fortuner-cabin .ev-seat-upholstery{display:none!important}.fortuner-cabin .ev-seat:disabled{opacity:1;cursor:default}
.fortuner-cabin[hidden],.fc-photo-panel[hidden],.fc-face[hidden],.fortuner-frame[hidden]{display:none!important}
.fc-photo-tabs{display:flex;width:100%;border:1px solid var(--line,#dfe6ef);border-radius:14px;overflow:hidden;background:var(--surface,#fff);margin:0 0 18px}.fc-photo-tabs button{display:flex;align-items:center;justify-content:center;flex:1;gap:8px;min-height:44px;padding:9px 6px;border:0;background:none;font:inherit;font-size:12px;font-weight:700;color:var(--muted,#637993);cursor:pointer}.fc-photo-tabs button[aria-selected=true]{color:#fff;background:#0066ff;border-radius:12px}.fc-photo-tabs svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}.fc-photo-panel img{width:100%;height:auto;object-fit:contain;border-radius:16px}
.fc-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;font-size:11px;line-height:1.5;color:var(--muted,#637993);margin:12px 0}.fc-legend>span{display:flex;align-items:center;gap:5px}.fc-legend i{display:inline-block;width:9px;height:9px;border:1px solid #087f5b;border-radius:50%;background:#087f5b}.fc-legend .fc-dot-taken{background:#e65a68;border-color:#e65a68;border-radius:50%}.fc-legend .fc-dot-selected{background:#0066ff;border-color:#0066ff}
.fc-price-key{display:grid;gap:6px;max-width:288px;margin:14px auto 8px;color:var(--ink,#17345b);font-size:11px;line-height:1.5}.fc-price-key:empty{display:none}.fc-price-key>span{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line,#dfe6ef);border-radius:10px;background:var(--surface,#fff)}.fc-price-key b{font-weight:600}.fc-price-key>span>span{font-weight:700;color:var(--blue,#0066ff)}
.fortuner-cabin .fc-note{color:var(--muted,#637993);font-size:11px;line-height:1.5;margin:10px 0;text-align:center}
.booking-cabin.fortuner-cabin{max-width:288px;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;border-radius:0}.fortuner-cabin .booking-cabin-front{display:none}.seat-map:has(>.fortuner-cabin){display:block;max-width:288px;padding:0;border:0;background:none;margin:0 auto}.seat-map>.fortuner-cabin{margin:0 auto}
.fc-reference-section{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;max-width:680px;margin-left:auto!important;margin-right:auto!important}.fc-reference-section>summary{margin-bottom:18px}.fc-reference-section .fc-photo-tabs{margin-top:18px}
.ev-cabin-wrap.fortuner-cabin{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;display:flex;flex-direction:column;gap:0}.ev-cabin-wrap.fortuner-cabin>.ev-between{order:-1;margin-bottom:12px}.ev-cabin-wrap.fortuner-cabin>.fc-photo-tabs{order:0}.ev-cabin-wrap.fortuner-cabin>.fc-legend{order:4}.ev-cabin-wrap.fortuner-cabin>.ev-caption{order:5;font-size:11px;line-height:1.5;text-align:center}.ev-cabin-wrap.fortuner-cabin>.fortuner-frame,.ev-cabin-wrap.fortuner-cabin>.fc-photo-panel{order:2}.ev-cabin-wrap.fortuner-cabin>.fc-price-key{order:3;width:100%}.ev-cabin-wrap.fortuner-cabin>.ev-furniture-key{display:none}.ev-cabin-wrap.fortuner-cabin[data-readonly=true]>.fc-legend>span:last-child{display:none}
.booking-seat-picker .fc-photo-tabs{max-width:340px;margin-left:auto;margin-right:auto}.booking-seat-picker .booking-seat-legend{margin-top:10px}.booking-seat-picker .seat-furniture-key{margin:4px 0;font-size:11px}.booking-seat-picker .seat-picker-feedback{margin:10px 0;min-height:18px}.booking-seat-picker .seat-auto{min-height:44px;margin:0 auto}.booking-seat-picker .seat-picker-note{margin:8px 0 0;font-size:11px;line-height:1.5}
.fc-room-ticket{position:relative;display:flex;align-items:center;gap:5%;padding:7% 5%;border-top:1px dashed var(--line);border-radius:0 0 22px 22px;background:var(--surface,#fff);box-shadow:0 7px 12px #263d5710;text-decoration:none!important;color:var(--ink,#17345b)!important}.fc-room-ticket>svg{width:8%;height:auto;aspect-ratio:1;flex:none;fill:none;stroke:#627bac;stroke-width:1.8}.fc-room-ticket>svg:last-child{width:4%;margin-left:auto;transform:rotate(-90deg)}.fc-room-ticket>span{display:flex;flex-direction:column;gap:7px}.fc-room-ticket strong{font-size:clamp(16px,4.1vw,26px);line-height:1.25;font-weight:800;letter-spacing:-.03em}.fc-room-ticket small{font-size:clamp(10px,2.7vw,16px);line-height:1.4;color:var(--muted)}
/* Schedule preview: same furniture, numbers only. */
.fortuner-cabin.fc-mini-map{max-width:none;width:90%;margin:0 auto;pointer-events:none}.fc-mini-map .fc-bench-label,.fc-mini-map .fc-headrests,.fc-mini-map .fc-front-label{display:none}
.fc-mini-map .fc-place.mini-seat{position:absolute!important;display:flex!important;align-items:center;justify-content:center;flex:none;width:28.75%!important;height:18.824%!important;min-width:0!important;min-height:0!important;max-width:none;margin:0!important;padding:0!important;border:1px solid var(--fc-line);border-radius:7px;background:#f4f8fc;opacity:1;box-shadow:none}
.fc-mini-map .fc-place.mini-seat[data-bench="1"]{width:38.75%!important;background:none!important;border:0!important;border-radius:0!important}
.fc-mini-map .fc-place.mini-seat>span{position:static!important;display:grid;place-items:center;inset:auto!important;width:20px!important;height:20px!important;transform:none!important;background:var(--fc-free)!important;border:1px solid #087f5b;border-radius:50%;color:#fff;font-size:10px!important;line-height:1;font-weight:800}.fc-mini-map .fc-place.mini-seat:not([data-state=free])>span{background:#ffe2e6!important;border-color:#f3aab4;border-radius:50%;color:#bd3345}
.fc-mini-map .fc-driver>span,.fc-mini-map .fc-driver>small{font-size:6px}.fc-mini-map .fc-driver,.fc-mini-map .fc-place[data-seat-label="1"]{border-radius:6px!important}.fc-mini-map .fc-driver:before,.fc-mini-map .fc-place:before{display:none}.fc-mini-map .fc-bench{border-radius:6px;background:linear-gradient(#c6d5e5,#c6d5e5) center 8px/1px calc(100% - 13px) no-repeat,linear-gradient(#dce7f1 0 5px,#f4f8fc 5px);box-shadow:0 2px 0 -1px #c5d3e2}.fc-mini-map .fc-bench:before,.fc-mini-map .fc-bench:after{top:4px;bottom:3px;width:3px}.fc-mini-map .fc-bench:before{left:-2px}.fc-mini-map .fc-bench:after{right:-2px}
.cabin-grid>.cabin-bench{min-height:0;margin:-2px -3px;border-width:1px;border-radius:10px;background:var(--soft)}
@media(prefers-reduced-motion:no-preference){.fortuner-cabin .fc-place>strong,.fortuner-cabin .fc-face{transition:background .14s,color .14s,border-color .14s}}

/* One centered direction label and a high-contrast occupancy key on every preview. */
.cabin-panel .cabin-caption{justify-content:center;gap:5px;margin-bottom:9px;font-size:9px;line-height:16px;text-align:center}.cabin-panel .cabin-caption>svg{width:12px;height:12px;flex:none}.cabin-panel .seat-legend{justify-content:center;gap:8px}.cabin-panel .legend-free,.booking-seat-legend i.free{background:#087f5b;border:1px solid #087f5b}.cabin-panel .legend-taken,.booking-seat-legend i.taken{background:#e65a68;border:1px solid #e65a68;border-radius:50%}.booking-seat-legend i.selected{background:#0066ff}
.cabin-panel .cabin-caption>svg{order:-1}.cabin-panel .legend-free,.booking-seat-legend i.free{border-radius:50%}

/* Sedona has three passenger chairs and only the rear bench. */
.fortuner-cabin .fc-place[data-bench="0"][data-row="2"]{width:28.75%!important;background:linear-gradient(#dde8f3 0 10px,#f6f9fc 10px);border:1.5px solid var(--fc-line);border-radius:12px;box-shadow:0 3px 0 -1px #cfdae7}
.fortuner-cabin .fc-place[data-bench="0"][data-seat-label="2"]{left:12.5%!important}.fortuner-cabin .fc-place[data-bench="0"][data-seat-label="3"]{left:58.75%!important}
.fortuner-cabin .fc-place[data-bench="0"][data-row="2"]:before{content:'';position:absolute;top:-8px;left:29%;width:42%;height:10px;border:1.5px solid var(--fc-line);border-radius:5px;background:#dfe9f3}.fc-mini-map .fc-place.mini-seat[data-bench="0"][data-row="2"]{border-radius:6px;box-shadow:none}.fc-mini-map .fc-place[data-row="2"]:before{display:none}

.fortuner-cabin .fc-place:not([data-state="free"]):not(.fc-mine) .fc-face{background:#ffe2e6;color:#bd3345}

/* All preview numbers share the same two column axes, including front seat 1. */
.fortuner-cabin.fc-mini-map .fc-driver,.fortuner-cabin.fc-mini-map .fc-place[data-bench="0"][data-seat-label="2"]{left:16.25%!important}
.fortuner-cabin.fc-mini-map .fc-place[data-seat-label="1"],.fortuner-cabin.fc-mini-map .fc-place[data-bench="0"][data-seat-label="3"]{left:55%!important}
/* Keep the native radio accessible; the circular seat marker is its only visible selection. */
[data-seat-change] .fortuner-cabin .fc-place>input[type="radio"]{position:absolute!important;inset:auto!important;top:0!important;left:0!important;width:1px!important;height:1px!important;min-height:0!important;max-height:1px!important;padding:0!important;margin:0!important;clip-path:inset(50%);overflow:hidden;pointer-events:none}
[data-seat-change] .fortuner-cabin .fc-place:has(>input:checked){outline:none!important;box-shadow:none!important;background:none!important;border-color:var(--fc-line)!important}
[data-seat-change] .fortuner-cabin .fc-place:has(>input:checked)>strong{position:static!important;display:grid!important;place-items:center;width:31px!important;height:31px!important;background:var(--fc-blue)!important;border:1px solid var(--fc-blue)!important;border-radius:50%!important;color:#fff!important;font-size:18px!important}
[data-seat-change] .fc-place:not(:has(input)){cursor:default}
[data-seat-change] .fc-place:has(input):hover{outline:none!important}

[data-seat-change] .seat-support-hit{position:absolute;inset:0;z-index:5;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;border-radius:inherit;background:none;cursor:pointer}
[data-seat-change] .fortuner-cabin .fc-place.is-selected>strong{background:var(--fc-blue)!important;border-color:var(--fc-blue)!important;color:#fff!important}
[data-seat-change] .fortuner-cabin .fc-place.is-selected{outline:none!important;box-shadow:none!important}
