/* Illustrated team coach. The original seats, ratings and drop controls own the UI. */
body.sw-clean #busBody{
 --coach-ink:#071426;--coach-blue:#174997;--coach-glass:#122d4d;
 position:relative;isolation:isolate;margin:20px 0 45px;padding:28px 36px 104px 22px;
 background:linear-gradient(180deg,#3b6aab 0,#285898 22px,#153d7b 52%,#0c2a59 100%)!important;
 border:3px solid var(--coach-ink);border-top:4px solid #b7d5ec;
 border-radius:28px 48px 17px 17px;
 box-shadow:inset 0 2px #edf8ff70,inset 5px 0 #80a9d42b,inset -9px 0 #051c4480,3px 5px #050e2260;
 overflow:visible;
}
body.sw-clean #busBody::before{
 content:'';position:absolute;z-index:0;inset:auto 0 0;height:126px;border-radius:0 0 14px 14px;
 background:url('assets/coach-livery-v2.svg') center bottom/100% 126px no-repeat;pointer-events:none;
}
body.sw-clean #busBody::after{
 content:'';position:absolute;right:4px;bottom:27px;width:7px;height:22px;
 border:1px solid #071426;border-radius:2px;background:linear-gradient(90deg,#f5db78,#fff8d5 65%);
 box-shadow:0 0 0 1px #93adc7,0 0 9px #fff2ad26;pointer-events:none;
}
body.sw-clean #busBody .busroof{
 display:block!important;position:absolute;left:15px;right:30px;top:-12px;height:27px;
 border:0;border-radius:0;background:url('assets/coach-roof-rail-v1.svg') center/100% 27px no-repeat;
 box-shadow:none;z-index:2;pointer-events:none;
}
body.sw-clean #busBody .busroof::after{
 content:'';position:absolute;right:-39px;top:20px;width:12px;height:29px;
 border:2px solid #071426;border-radius:3px 7px 7px 3px;
 background:linear-gradient(100deg,#83a6c9,#213e62 55%,#7b9ab9);
 box-shadow:-5px -4px 0 -2px #071426;pointer-events:none;
}
body.sw-clean #busBody #slots{
 position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:12px 11px;align-items:stretch;
}
body.sw-clean #busBody .slot{
 position:relative;box-sizing:border-box;min-width:0;min-height:142px;padding:12px 12px 14px;
 border:2px solid #061225;border-radius:10px 10px 6px 6px;
 background:linear-gradient(125deg,#ffffff0d 0 17%,transparent 17% 49%,#a6d6f008 49% 55%,transparent 55%),linear-gradient(180deg,#244d70,#163653 55%,#102b47)!important;
 box-shadow:inset 0 2px #d2e5f14a,inset 0 -3px #071c3480,0 2px #89abc1,0 0 0 1px #466b91;
}
body.sw-clean #busBody .slot.open::after{
 content:'';position:absolute;right:10px;bottom:10px;width:34px;height:43px;
 border:0;border-radius:0;box-shadow:none;
 background:url('assets/coach-window-seat-v1.svg') center/contain no-repeat;opacity:.65;pointer-events:none;
}
body.sw-clean #busBody .slot .lab{
 display:block;min-height:36px;padding-right:31px;
 font:700 19px/1.08 var(--arc-label);letter-spacing:.015em;text-transform:uppercase;
 color:#ffe364;overflow-wrap:break-word;
}
body.sw-clean #busBody .real-seat-role{
 font:500 11px/1.3 var(--arc-body);color:#b4c9dc;margin-top:4px;overflow-wrap:break-word;
}
body.sw-clean #busBody .slot .who{
 display:block;margin:10px 0 0;padding:0;
 font:750 19px/1.22 var(--arc-body);letter-spacing:-.015em;color:var(--arc-paper);
 white-space:normal;overflow-wrap:break-word;
}
body.sw-clean #busBody .slot.open .who{
 font:600 15px/1.3 var(--arc-body);letter-spacing:0;color:#acc7df;
}
body.sw-clean #busBody .slot.filled{
 background:linear-gradient(125deg,#ffffff0d 0 17%,transparent 17% 49%,#a6d6f008 49% 55%,transparent 55%),linear-gradient(180deg,#1c4264,#102f4e 55%,#0b2541)!important;
 box-shadow:inset 0 2px #d2e5f14a,inset 0 -3px #071c3480,0 2px #89abc1,0 0 0 1px #668da9;
}
body.sw-clean #busBody .slot.filled .lab{color:#ffe364}
body.sw-clean #busBody .slot.filled .who{color:#fff5db}
body.sw-clean #busBody .slot.filled .real-seat-role{color:#b4c9dc}
body.sw-clean #busBody .slot .dec{
 display:block;margin-top:10px;padding-right:32px;font:700 16px/1.2 var(--arc-label);
 letter-spacing:.01em;color:#dce9f6;overflow-wrap:break-word;
}
body.sw-clean #busBody .slot .pr{
 top:9px;right:8px;min-width:25px;text-align:center;padding:4px 3px;
 border:1px solid #071426;border-radius:3px;background:#ffe364;color:#0c1830;
 box-shadow:0 1px #b57d1b;font:800 18px/1 var(--arc-body);
}
body.sw-clean #busBody .slot .drop{
 right:7px;bottom:7px;min-width:30px;min-height:30px;padding:0;
 border:1px solid #839bae;border-radius:4px;background:#102840;color:#fff5db;
 font:600 18px/1 Arial,sans-serif;box-shadow:none;cursor:pointer;
}
body.sw-clean #busBody .slot .drop:hover{background:#254c70;border-color:#d5e6f2}
body.sw-clean #busBody .slot .drop:focus-visible{outline:3px solid #fff0a0;outline-offset:3px}
body.sw-clean #busBody .busskirt{
 position:absolute;display:block!important;inset:auto 0 0;height:92px;border:0;background:none;
 overflow:visible;z-index:2;pointer-events:none;
}
body.sw-clean #busBody .busskirt::before,body.sw-clean #busBody .busskirt::after{content:none}
/* Retain the actual brand mark and the existing alloy wheel artwork. */
body.sw-clean #busBody .bus-plate{
 position:absolute;z-index:3;bottom:14px;left:50%;transform:translateX(-50%);width:108px;height:72px;
}
body.sw-clean #busBody .bus-plate img{width:108px;height:72px;object-fit:contain}
body.sw-clean #busBody .wh{bottom:-23px;z-index:3}
body.sw-clean #busBody .w1{left:7%}
body.sw-clean #busBody .w2{left:auto;right:7%}
@media(max-width:900px){
 body.sw-clean #busBody{padding:25px 28px 103px 18px}
 body.sw-clean #busBody #slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body.sw-clean #busBody .slot{min-height:138px}
}
@media(max-width:450px){
 body.sw-clean #busBody{margin-top:18px;padding:25px 20px 100px 13px;border-radius:23px 35px 14px 14px}
 body.sw-clean #busBody #slots{gap:10px 9px}
 body.sw-clean #busBody .busroof{left:12px;right:23px}
 body.sw-clean #busBody .busroof::after{right:-32px;top:20px;width:9px;height:26px}
 body.sw-clean #busBody .slot{min-height:137px;padding:11px 9px 14px}
 body.sw-clean #busBody .slot .lab{font-size:18px;min-height:38px;padding-right:28px}
 body.sw-clean #busBody .real-seat-role{font-size:10px}
 body.sw-clean #busBody .slot .who{font-size:17px;line-height:1.23}
 body.sw-clean #busBody .slot.open .who{font-size:14px}
 body.sw-clean #busBody .slot .dec{font-size:15px;padding-right:37px;min-height:25px}
 body.sw-clean #busBody .slot .pr{right:6px;top:8px;font-size:16px;min-width:22px}
 body.sw-clean #busBody .slot .drop{right:6px;bottom:6px;min-width:34px;min-height:34px}
 body.sw-clean #busBody .w1{left:5%}
 body.sw-clean #busBody .w2{right:5%}
}
@media(max-width:360px){
 body.sw-clean #busBody{padding-left:10px;padding-right:18px}
 body.sw-clean #busBody .slot{padding:11px 7px 14px}
 body.sw-clean #busBody .slot .lab{font-size:17px}
 body.sw-clean #busBody .slot .who{font-size:16px}
}
