*{box-sizing:border-box}
body{
 margin:0;background:#fff;color:#111;
 font-family:Montserrat,Arial,sans-serif
}
.seat-header{
 display:flex;justify-content:space-between;align-items:center;
 gap:20px;padding:16px max(20px,calc((100vw - 1160px)/2));
 border-bottom:1px solid #e5e5e5
}
.seat-header img{width:140px;max-height:55px;object-fit:contain}
.seat-header nav{display:flex;flex-wrap:wrap;gap:18px}
.seat-header a{color:inherit;text-decoration:none;font-size:12px;font-weight:700}
.seat-main{max-width:1160px;margin:auto;padding:40px 20px}
.seat-title span{font-size:10px;font-weight:800;letter-spacing:2px}
.seat-title h1{font-size:clamp(28px,5vw,44px);margin:12px 0}
.seat-title p,.seat-panel-heading p{font-size:12px;color:#666;line-height:1.7}
.seat-filters{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:12px;margin:28px 0
}
.seat-filters label{display:grid;gap:8px;font-size:10px;font-weight:800}
.seat-filters select,.seat-filters input{
 min-width:0;width:100%;height:45px;padding:9px;
 border:1px solid #ccc;border-radius:6px;
 background:#fff;color:#111;font:600 11px Montserrat,sans-serif
}
.seat-columns{
 display:grid;grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr);
 gap:24px;align-items:start
}
.seat-map-panel,.seat-summary{
 border:1px solid #ddd;border-radius:12px;padding:22px
}
.seat-panel-heading h2,.seat-summary h2{font-size:18px;margin:0 0 10px}
.seat-vehicle{
 width:min(100%,360px);margin:25px auto;
 padding:18px 13px;border:3px solid #222;
 border-radius:45px 45px 15px 15px;background:#fafafa
}
.seat-windscreen,.seat-rear{
 text-align:center;font-size:9px;letter-spacing:1px;
 font-weight:800;padding:10px 0 20px
}
.seat-rear{padding:20px 0 8px}
.seat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.seat-button,.seat-space{
 min-width:0;min-height:44px;border-radius:6px;
 display:flex;justify-content:center;align-items:center;
 font:800 11px Montserrat,sans-serif
}
.seat-button{border:1px solid #ccc;cursor:pointer}
.seat-button.available{background:#eee;color:#111}
.seat-button.available:hover{background:#ddd}
.seat-button.selected{background:#111;color:#fff;border-color:#111}
.seat-button.booked{background:#c62828;color:#fff;border-color:#c62828;cursor:not-allowed}
.seat-space{font-size:9px;color:#777}
.seat-space.driver{background:#333;color:#fff}
.seat-space.door{border:1px dashed #777;font-size:8px}
.seat-legend{display:flex;flex-wrap:wrap;gap:15px}
.seat-legend span{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700}
.legend{width:16px;height:16px;border:1px solid #ccc;border-radius:3px;display:inline-block}
.legend.available{background:#eee}
.legend.selected{background:#111}
.legend.booked{background:#c62828;border-color:#c62828}
.legend.blocked{background:#aaa}
.summary-line{
 display:flex;justify-content:space-between;gap:15px;
 padding:15px 0;border-bottom:1px solid #eee;font-size:11px
}
.summary-line strong{text-align:right}
.summary-line.total{font-size:16px;font-weight:800}
.seat-action,.seat-reset{
 width:100%;padding:15px;margin-top:18px;border-radius:6px;
 font:800 11px Montserrat,sans-serif;cursor:pointer
}
.seat-action{background:#111;color:#fff;border:1px solid #111}
.seat-action:disabled{opacity:.4;cursor:not-allowed}
.seat-reset{background:#fff;color:#111;border:1px solid #ccc;margin-top:9px}
#seatMessage{font-size:12px;font-weight:700;line-height:1.6}
.seat-disclaimer{font-size:10px;color:#777;line-height:1.8}
@media(max-width:760px){
 .seat-header{flex-direction:column}
 .seat-main{padding:25px 12px}
 .seat-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .seat-columns{grid-template-columns:1fr}
 .seat-map-panel,.seat-summary{padding:15px}
 .seat-vehicle{padding:12px 9px}
 .seat-grid{gap:5px}
 .seat-button,.seat-space{min-height:40px;font-size:10px}
}
@media(max-width:360px){
 .seat-filters{grid-template-columns:1fr}
}

#printBooking:disabled{
 opacity:.45;
 cursor:not-allowed;
}

#dundaaPrintConfirmation{
 display:none;
}

@media print{
 body.dundaa-print-mode > *:not(#dundaaPrintConfirmation){
  display:none!important;
 }
 body.dundaa-print-mode #dundaaPrintConfirmation{
  display:block!important;
  padding:25px;
  font-family:Montserrat,Arial,sans-serif;
  color:#000;
 }
 #dundaaPrintConfirmation h1{
  font-size:20px;
  border-bottom:2px solid #000;
  padding-bottom:15px;
 }
 #dundaaPrintConfirmation p{
  font-size:12px;
  padding:9px 0;
  border-bottom:1px solid #ddd;
 }
}

/* DUNDAA connected passenger bench styling */
.seat-button.bench-seat{
 border-radius:0;
 position:relative;
 border-right-width:0;
}

.seat-button.bench-start{
 border-top-left-radius:9px;
 border-bottom-left-radius:9px;
}

.seat-button.bench-end{
 border-top-right-radius:9px;
 border-bottom-right-radius:9px;
 border-right-width:1px;
}

.seat-button.bench-seat.available{
 background:#ececec;
}

.seat-button.bench-seat.selected{
 background:#111;
 color:#fff;
}

.seat-button.bench-seat.booked{
 background:#c62828!important;
 color:#fff!important;
}

.seat-grid .bench-seat{
 margin-right:-7px;
}

@media(max-width:760px){
 .seat-grid .bench-seat{
  margin-right:-5px;
 }
}

/* Hide all passenger-door indicators in vehicle seating plans */
.seat-grid .seat-space.door{
 background:transparent!important;
 border:0!important;
 color:transparent!important;
 font-size:0!important;
}

/* DUNDAA — final connected seating arrangements */
.seat-grid{
 display:grid;
 grid-template-columns:repeat(5,minmax(0,1fr));
 gap:6px;
}

.seat-grid .seat-button.bench-seat{
 border-radius:0;
 margin-right:-6px;
 border-right-width:0;
 position:relative;
 z-index:1;
}

.seat-grid .seat-button.bench-start{
 border-top-left-radius:9px;
 border-bottom-left-radius:9px;
}

.seat-grid .seat-button.bench-end{
 border-top-right-radius:9px;
 border-bottom-right-radius:9px;
 border-right-width:1px;
 margin-right:0;
}

.seat-grid .seat-button.available{
 background:#ececec;
 color:#111;
}

.seat-grid .seat-button.selected{
 background:#111;
 color:#fff;
}

.seat-grid .seat-button.booked{
 background:#c62828!important;
 color:#fff!important;
 border-color:#c62828!important;
}

.seat-grid .seat-space.door{
 display:block;
 visibility:hidden;
 border:0!important;
}

@media(max-width:760px){
 .seat-grid{
  gap:4px;
 }
 .seat-grid .seat-button.bench-seat{
  margin-right:-4px;
 }
}

/* Rear bench must occupy the entire vehicle width */
.seat-grid .seat-button.bench-seat{
 border-radius:0;
 margin-right:0!important;
}

.seat-grid .seat-button.bench-start{
 border-top-left-radius:9px;
 border-bottom-left-radius:9px;
}

.seat-grid .seat-button.bench-end{
 border-top-right-radius:9px;
 border-bottom-right-radius:9px;
}

/* Hide all passenger-door indicators */
.seat-grid .seat-space.door{
 border:0!important;
 background:transparent!important;
 color:transparent!important;
}

/* DUNDAA unified Kenyan vehicle seating renderer */
.seat-grid.kenya-layout-grid{
 display:flex!important;
 flex-direction:column;
 gap:10px;
 width:100%;
}

.kenyan-row{
 display:flex;
 width:100%;
 min-height:48px;
 align-items:stretch;
 gap:0;
}

.kenyan-bench{
 display:flex;
 min-width:0;
 flex:1;
 gap:0!important;
 border:1px solid #bbb;
 border-radius:9px;
 overflow:hidden;
 background:#ececec;
}

.kenyan-seat{
 min-width:0;
 flex:1;
 height:48px;
 padding:0;
 border:0;
 border-right:1px solid #bbb;
 border-radius:0!important;
 font:800 11px Montserrat,Arial,sans-serif;
 cursor:pointer;
}

.kenyan-seat:last-child{
 border-right:0;
}

.kenyan-seat.available{
 background:#ececec;
 color:#111;
}

.kenyan-seat.selected{
 background:#111;
 color:#fff;
}

.kenyan-seat.booked{
 background:#c62828!important;
 color:#fff!important;
 cursor:not-allowed;
}

.kenyan-row.split{
 gap:0;
}

.kenyan-row.split .kenyan-bench{
 flex:2;
}

.kenyan-aisle{
 flex:.7;
 min-width:14px;
}

.kenyan-row.bench .kenyan-bench{
 width:100%;
 flex:1;
}

.kenyan-row.pair{
 justify-content:center;
}

.kenyan-row.pair .kenyan-bench{
 flex:0 0 48%;
}

.kenyan-row.cockpit,
.kenyan-row.cockpit7{
 align-items:stretch;
 gap:8px;
}

.kenyan-row.cockpit .front-bench{
 flex:0 0 45%;
}

.kenyan-cockpit-space{
 flex:1;
}

.kenyan-driver{
 width:22%;
 min-width:48px;
 display:flex;
 align-items:center;
 justify-content:center;
 border-radius:8px;
 background:#303030;
 color:#fff;
 font-size:11px;
 font-weight:800;
}

.kenyan-row.cockpit7{
 justify-content:space-between;
}

.kenyan-row.cockpit7 .kenyan-bench{
 flex:0 0 24%;
}

@media(max-width:760px){
 .kenyan-row{min-height:42px}
 .kenyan-seat{height:42px}
 .kenyan-row{gap:8px}
 .kenyan-row.split{gap:0}
}

#dundaaPrintConfirmation{
 display:none;
}

@media print{
 body.dundaa-print-mode > *:not(#dundaaPrintConfirmation){
  display:none!important;
 }
 body.dundaa-print-mode #dundaaPrintConfirmation{
  display:block!important;
  padding:25px;
  font-family:Montserrat,Arial,sans-serif;
  color:#000;
 }
 #dundaaPrintConfirmation p{
  border-bottom:1px solid #ddd;
  padding:10px 0;
 }
}

/* DUNDAA KENYAN SEATING — V8 */
.seat-grid.dk-map{
 display:flex!important;
 flex-direction:column;
 gap:9px;
 width:100%;
}

.dk-row{
 display:flex;
 align-items:stretch;
 gap:10px;
 width:100%;
 min-height:45px;
}

.dk-row>*{
 min-width:0;
 flex:1;
}

.dk-gap{
 background:transparent;
}

.dk-driver{
 flex:0 0 24%;
 background:#303030;
 color:#fff;
 border-radius:7px;
 display:flex;
 align-items:center;
 justify-content:center;
 font-size:10px;
 font-weight:800;
}

.dk-bench{
 display:flex;
 overflow:hidden;
 border:1px solid #aaa;
 border-radius:8px;
 gap:0;
}

.dk-individual{
 display:flex;
 gap:7px;
}

.dk-seat{
 flex:1;
 min-width:0;
 height:45px;
 border:0;
 border-right:1px solid #aaa;
 border-radius:0;
 font:800 11px Montserrat,Arial,sans-serif;
 cursor:pointer;
}

.dk-seat:last-child{
 border-right:0;
}

.dk-individual .dk-seat{
 border:1px solid #bbb;
 border-radius:7px;
}

.dk-seat.available{
 background:#ededed;
 color:#111;
}

.dk-seat.selected{
 background:#111;
 color:#fff;
}

.dk-seat.booked{
 background:#c62828!important;
 color:#fff!important;
 cursor:not-allowed;
}

.dk-full-row .dk-bench{
 flex:1;
 width:100%;
}

.dk-full-row .dk-seat{
 flex:1;
}

@media(max-width:760px){
 .dk-row{
  gap:5px;
  min-height:40px;
 }
 .dk-seat{
  height:40px;
 }
 .dk-individual{
  gap:4px;
 }
}
