/* Canonical MyBus 55/46/41 seat templates (v261). */
.seat-template-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.seat-template-card>span{min-height:230px}
.seat-template-preview-v260{display:block;margin-top:auto}
.seat-template-preview-v260>i{display:block;margin-bottom:5px;color:#53685e;font-size:8px;font-weight:800;letter-spacing:.06em}
.seat-template-bus-v261{display:flex;width:100%;height:76px;overflow:hidden;border:1px solid #9fb5aa;border-radius:28px 10px 10px 28px;background:linear-gradient(180deg,#fff 0 45%,#eaf2ee 46% 54%,#fff 55% 100%);box-shadow:inset 0 0 0 2px #f7faf8}
.seat-template-cockpit-v261{position:relative;display:flex;flex:0 0 25px;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-right:1px solid #cad8d1;border-radius:26px 0 0 26px;background:linear-gradient(105deg,#d9e8e1 0 28%,#fbfdfc 29% 100%);color:#597066}
.seat-template-cockpit-v261:before{content:"";position:absolute;left:3px;top:9px;width:7px;height:19px;border:1px solid #94aa9f;border-radius:70% 20% 20% 70%}
.seat-template-cockpit-v261>b{font-size:12px;line-height:1}
.seat-template-cockpit-v261>small{font-size:5px;font-weight:900}
.seat-template-deck-v261{display:flex;flex:1 1 auto;align-items:center;justify-content:space-between;min-width:0;gap:1px;padding:4px 3px}
.seat-template-column-v261{display:grid;flex:0 0 9px;grid-template-rows:29px 7px 29px;align-items:center;justify-items:center}
.seat-template-column-v261.gap-before{margin-left:3px;border-left:1px dashed #b4c6bd;padding-left:3px}
.seat-template-column-v261.rear{border-left:1px solid #d4dfda;background:rgba(230,240,235,.55)}
.seat-template-column-v261 .mini-upper,.seat-template-column-v261 .mini-lower{display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center}
.seat-template-column-v261 .mini-upper{grid-row:1}
.seat-template-column-v261 .mini-aisle{display:flex;grid-row:2;align-items:center;justify-content:center;width:100%;height:100%;border-top:1px solid #d9e4de;border-bottom:1px solid #d9e4de}
.seat-template-column-v261 .mini-lower{grid-row:3}
.seat-template-column-v261 em{display:grid;place-items:center;width:8px;height:13px;border:1px solid #66a18a;border-radius:2px;background:#d9eee5;color:#244c3d;font-size:4px;font-style:normal;line-height:1}
.seat-template-column-v261 .mini-aisle em{height:7px;background:#bee4d4}
.seat-template-tail-v261{display:grid;place-items:center;flex:0 0 11px;border-left:1px solid #cad8d1;color:#6f8279;font-size:5px;font-weight:900;letter-spacing:.05em;writing-mode:vertical-rl}
.mybus-operations-reference .seat-physical-row-v260.seat-layout-2x1-v260{grid-template-columns:repeat(4,30px)}
.mybus-operations-reference .seat-physical-row-v260.seat-template-gap-v260{margin-top:10px;position:relative}
.mybus-operations-reference .seat-physical-row-v260.seat-template-gap-v260:before{content:"";position:absolute;left:0;right:0;top:-7px;border-top:1px dashed #b7c7bf}
.mybus-operations-reference .seat-physical-row-v260.seat-template-rear-v260{padding-top:4px;border-top:1px solid #dce6e0}
.mybus-operations-reference .seat-template-placeholder-v260{width:30px;height:36px}
.mybus-operations-reference #seatMap{border:1px solid #b8cdc3;border-radius:42px 42px 18px 18px;background:linear-gradient(90deg,#fbfdfc,#edf5f1 48%,#fbfdfc);box-shadow:inset 0 0 0 3px rgba(255,255,255,.85)}
@media(max-width:900px){.seat-template-cards{grid-template-columns:1fr}}

/* Manual per-vehicle seat layout editor (v272). */
.seat-template-editbar-v272{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid #cfe0d8;border-radius:12px;background:#f5faf7}
.seat-template-editbar-v272 button{border:0;border-radius:9px;background:#087a5a;color:#fff;font-weight:850;padding:10px 14px;cursor:pointer}
.seat-template-editbar-v272 span{color:#476057;font-size:12px;font-weight:750}
.seat-layout-editor-v272{margin-top:14px;padding:16px;border:1px solid #aac6ba;border-radius:16px;background:#f8fbf9;box-shadow:0 12px 30px rgba(12,61,47,.12)}
.seat-layout-editor-v272>header,.seat-layout-editor-v272>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.seat-layout-editor-v272>header>div{display:flex;flex-direction:column;gap:3px}.seat-layout-editor-v272>header strong{font-size:16px}.seat-layout-editor-v272>header small{color:#587068}
.seat-layout-editor-v272>header button,.seat-layout-editor-v272>footer button{border:1px solid #9db9ad;border-radius:8px;background:#fff;color:#173c31;padding:8px 12px;cursor:pointer}
.seat-layout-editor-v272>footer{justify-content:flex-end;margin-top:12px}.seat-layout-editor-v272>footer button{border-color:#087a5a;background:#087a5a;color:#fff;font-weight:850}
.seat-layout-editor-v272>footer.seat-layout-savebar-v273{position:sticky;bottom:-16px;z-index:5;margin:12px -16px -16px;padding:12px 16px;border-top:1px solid #c5d9d0;border-radius:0 0 16px 16px;background:rgba(248,251,249,.97);box-shadow:0 -8px 18px rgba(12,61,47,.08);backdrop-filter:blur(6px)}
.seat-layout-save-state-v273{margin-right:auto;color:#526a61;font-size:12px;font-weight:750}.seat-layout-save-state-v273.dirty{color:#a85a00;font-weight:900}.seat-layout-editor-v272>footer.seat-layout-savebar-v273 button{min-height:42px;padding:10px 18px;box-shadow:0 8px 18px rgba(8,122,90,.2)}
.seat-layout-tools-v272{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:14px 0 8px}.seat-layout-tools-v272 button{min-height:36px;border:1px solid #b8cdc3;border-radius:8px;background:#fff;color:#173c31;font-weight:750;cursor:pointer}.seat-layout-tools-v272 button:hover{border-color:#087a5a;background:#eef8f4}.seat-layout-tools-v272 label{display:flex;align-items:center;gap:6px;color:#435d54;font-size:11px;font-weight:750}.seat-layout-tools-v272 input{width:72px;min-height:36px;border:1px solid #b8cdc3;border-radius:8px;padding:6px}
.seat-layout-help-v272{margin:0 0 12px;color:#587068;font-size:11px}
.seat-layout-bus-v272{display:flex;min-height:250px;overflow:auto;border:2px solid #9fb9ae;border-radius:64px 16px 16px 64px;background:linear-gradient(180deg,#fff 0 42%,#e9f3ee 43% 57%,#fff 58% 100%)}
.seat-layout-cockpit-v272{display:grid;flex:0 0 64px;place-items:end center;padding-bottom:30px;border-right:1px solid #d0ded7;border-radius:62px 0 0 62px;color:#769087;font-size:28px}.seat-layout-tail-v272{display:grid;flex:0 0 24px;place-items:center;border-left:1px solid #d0ded7;color:#71877e;font-size:7px;font-weight:900;writing-mode:vertical-rl}
.seat-layout-grid-v272{display:grid;flex:1 0 760px;grid-template-columns:repeat(var(--seat-editor-columns),minmax(38px,1fr));grid-template-rows:repeat(5,42px);gap:4px;padding:16px 10px;align-content:center;background:linear-gradient(180deg,transparent 0 39%,rgba(225,240,233,.8) 40% 60%,transparent 61%)}
.seat-layout-cell-v272{display:grid;min-width:38px;place-items:center;border:1px dashed transparent;border-radius:8px}.seat-layout-cell-v272:hover,.seat-layout-cell-v272.drop-ready{border-color:#42b890;background:rgba(66,184,144,.12)}.seat-layout-cell-v272.aisle{border-top-color:#d7e5de;border-bottom-color:#d7e5de}
.seat-layout-item-v272{display:grid;width:36px;height:36px;place-items:center;border:2px solid #43816b;border-radius:10px 10px 5px 5px;background:linear-gradient(180deg,#cde8dd,#79ad98);color:#103b2e;font-size:13px;font-weight:950;cursor:grab;box-shadow:0 3px 7px rgba(15,61,47,.2);transition:.15s ease}.seat-layout-item-v272:hover{transform:scale(1.08)}.seat-layout-item-v272.dragging{opacity:.45}.seat-layout-item-v272.selected{border-color:#ef9f22;background:#fff0c9;box-shadow:0 0 0 3px rgba(239,159,34,.22)}
@media(max-width:900px){.seat-layout-editor-v272{padding:10px}.seat-layout-grid-v272{flex-basis:700px}.seat-layout-editor-v272>footer.seat-layout-savebar-v273{bottom:-10px;margin:12px -10px -10px;padding:10px;flex-wrap:wrap}.seat-layout-editor-v272>footer.seat-layout-savebar-v273 button{width:100%}}

/* The canonical custom layout is rendered from the vehicle snapshot on active trips. */
.mybus-operations-reference #seatMap.seat-map-custom-v272{align-items:center}
.mybus-operations-reference .operation-custom-seat-grid-v272{display:grid;grid-template-columns:repeat(5,30px);grid-template-rows:repeat(var(--operation-custom-columns),36px);gap:3px;align-items:center;justify-items:center;width:162px;margin:5px auto;padding:4px 0;background:linear-gradient(90deg,transparent 0 38%,rgba(215,233,224,.65) 39% 61%,transparent 62%)}
.mybus-operations-reference .operation-custom-seat-slot-v272{display:grid;place-items:center;width:30px;height:36px}
.mybus-operations-reference .operation-custom-seat-slot-v272.is-aisle{background:rgba(227,239,233,.7);border-radius:5px}
.mybus-operations-reference .operation-custom-seat-slot-v272 .seat-cell-v200{display:grid;place-items:center;width:30px;height:36px}

/* Fleet-level seat-plan management (v280). */
.fleet-seat-plan-toolbar-v280{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fleet-seat-plan-toolbar-v280 button{min-height:34px;padding:7px 12px;border:1px solid #b9cec5;border-radius:8px;background:#fff;color:#174034;font-weight:750;cursor:pointer}
.fleet-seat-plan-toolbar-v280 #fleetSeatPlanAddV280{border-color:#087a5a;background:#087a5a;color:#fff}
.fleet-seat-plan-toolbar-v280 #fleetSeatPlanEditV280{border-color:#087a5a;color:#087a5a;background:#f3fbf7}
.vehicle-form-v280 .seat-template-editbar-v272,.vehicle-form-v280 .seat-layout-editor-v272{display:none!important}
.fleet-seat-plan-context-v280{display:grid;grid-template-columns:minmax(210px,1.1fr) repeat(2,minmax(180px,1fr));gap:10px;margin-bottom:14px;padding:12px;border:1px solid #c8dbd3;border-radius:12px;background:#f4faf7}
.fleet-seat-plan-context-v280 label,.fleet-seat-plan-context-v280>div{display:flex;min-width:0;flex-direction:column;gap:5px}
.fleet-seat-plan-context-v280 span,.fleet-seat-plan-context-v280 label{color:#587068;font-size:11px;font-weight:750}
.fleet-seat-plan-context-v280 b{overflow:hidden;color:#173c31;text-overflow:ellipsis;white-space:nowrap}
.fleet-seat-plan-context-v280 select{min-height:36px;border:1px solid #adc4ba;border-radius:8px;background:#fff;padding:6px 9px;color:#173c31;font-weight:750}
.fleet-seat-plan-v280 .seat-template-card>span{min-height:190px}
@media(max-width:760px){.fleet-seat-plan-context-v280{grid-template-columns:1fr}.fleet-seat-plan-toolbar-v280 button{flex:1 1 150px}}
.fleet-seat-plan-context-v280 input,.fleet-seat-plan-name-v285 input,.vehicle-seat-plan-assignment-v285 select{min-height:38px;border:1px solid #adc4ba;border-radius:8px;background:#fff;padding:7px 10px;color:#173c31;font:inherit}
.fleet-seat-plan-name-v285{display:flex;flex-direction:column;gap:5px;margin:0 0 12px;color:#456158;font-size:12px;font-weight:800}
.fleet-seat-plan-save-actions-v285{display:flex;gap:8px;align-items:center}
.fleet-seat-plan-save-actions-v285 .danger{border-color:#c83030;background:#fff;color:#b51f1f}
.vehicle-seat-plan-assignment-v285{display:flex;flex-direction:column;gap:12px;margin-top:4px;padding:14px;border:1px solid #bdd7cc;border-radius:12px;background:#f3faf7}
.vehicle-seat-plan-assignment-v285 header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.vehicle-seat-plan-assignment-v285 header div{display:flex;flex-direction:column;gap:3px}.vehicle-seat-plan-assignment-v285 header small,.vehicle-seat-plan-assignment-v285 p{color:#567068;font-size:11px}.vehicle-seat-plan-assignment-v285 header span{padding:5px 8px;border-radius:999px;background:#dcefe7;color:#075f48;font-size:11px;font-weight:800}
.vehicle-seat-plan-assignment-v285>div{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:10px}.vehicle-seat-plan-assignment-v285 label{display:flex;flex-direction:column;gap:5px}.vehicle-seat-plan-assignment-v285 button{min-height:38px;border:0;border-radius:8px;background:#087a5a;color:#fff;padding:8px 14px;font-weight:800;cursor:pointer}.vehicle-seat-plan-assignment-v285 p{margin:0}
@media(max-width:700px){.vehicle-seat-plan-assignment-v285>div{grid-template-columns:1fr}.vehicle-seat-plan-assignment-v285 header{flex-direction:column}}
.fleet-row-actions-v283{display:flex;align-items:center;gap:6px;white-space:nowrap}
.fleet-row-actions-v283 button{min-height:34px}
.fleet-row-actions-v283 .veh-delete-v283{border-color:#dc2626;background:#fff5f5;color:#b91c1c;font-weight:750}
.fleet-row-actions-v283 .veh-delete-v283:hover{background:#dc2626;color:#fff}
.seat-plan-catalog-v286{margin:12px 0 18px}.seat-plan-catalog-v286 h3{margin:0 0 4px;font-size:14px}.seat-plan-catalog-v286>p,.seat-plan-hint-v286{margin:0 0 10px;color:#526d62;font-size:12px}
.seat-plan-catalog-grid-v286{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.seat-plan-catalog-card-v286{display:flex;flex-direction:column;gap:7px;min-width:0;text-align:left;padding:12px;border:2px solid #cfdcd6;border-radius:10px;background:#fff;color:#173c31;cursor:pointer;font:inherit}
.seat-plan-catalog-card-v286[aria-pressed="true"]{border-color:#087a5a;background:#f5fcf8;box-shadow:0 0 0 2px #e0f1e9}.seat-plan-catalog-card-v286 small{color:#5a7168}.seat-plan-catalog-card-v286>b{color:#087a5a;font-size:11px}.seat-plan-catalog-card-v286:focus-visible{outline:3px solid #2369e5;outline-offset:2px}
.seat-plan-preview-v286{display:flex;align-items:stretch;gap:4px;width:100%;height:94px;margin-top:3px;border:1px solid #a7c2b5;border-radius:24px 7px 7px 24px;overflow:hidden;background:linear-gradient(#fff 40%,#eaf4ee 40% 60%,#fff 60%)}
.seat-plan-front-v286{display:grid;place-items:center;flex:0 0 15px;writing-mode:vertical-rl;color:#779185;font-size:6px}
.seat-plan-deck-v286{display:grid;grid-template-columns:repeat(var(--plan-columns),minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:2px;flex:1;min-width:0;padding:7px 0}
.seat-plan-deck-v286 em{display:grid;place-items:center;min-width:0;border:1px solid #81b19e;border-radius:2px;background:#d9eee4;font-size:6px;line-height:1;font-style:normal;color:#173c31}
@media(max-width:640px){.seat-plan-catalog-grid-v286{grid-template-columns:1fr}}
/* Finite layout classes comply with the application CSP (no inline styles). */
.seat-plan-deck-v286.plan-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-1{grid-column:1}
.seat-plan-deck-v286.plan-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-2{grid-column:2}
.seat-plan-deck-v286.plan-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-3{grid-column:3}
.seat-plan-deck-v286.plan-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-4{grid-column:4}
.seat-plan-deck-v286.plan-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-5{grid-column:5}
.seat-plan-deck-v286.plan-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-6{grid-column:6}
.seat-plan-deck-v286.plan-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-7{grid-column:7}
.seat-plan-deck-v286.plan-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-8{grid-column:8}
.seat-plan-deck-v286.plan-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-9{grid-column:9}
.seat-plan-deck-v286.plan-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-10{grid-column:10}
.seat-plan-deck-v286.plan-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-11{grid-column:11}
.seat-plan-deck-v286.plan-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-12{grid-column:12}
.seat-plan-deck-v286.plan-cols-13{grid-template-columns:repeat(13,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-13{grid-column:13}
.seat-plan-deck-v286.plan-cols-14{grid-template-columns:repeat(14,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-14{grid-column:14}
.seat-plan-deck-v286.plan-cols-15{grid-template-columns:repeat(15,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-15{grid-column:15}
.seat-plan-deck-v286.plan-cols-16{grid-template-columns:repeat(16,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-16{grid-column:16}
.seat-plan-deck-v286.plan-cols-17{grid-template-columns:repeat(17,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-17{grid-column:17}
.seat-plan-deck-v286.plan-cols-18{grid-template-columns:repeat(18,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-18{grid-column:18}
.seat-plan-deck-v286.plan-cols-19{grid-template-columns:repeat(19,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-19{grid-column:19}
.seat-plan-deck-v286.plan-cols-20{grid-template-columns:repeat(20,minmax(0,1fr))}.seat-plan-deck-v286 .plan-x-20{grid-column:20}
.seat-plan-deck-v286 .plan-y-1{grid-row:1}
.seat-plan-deck-v286 .plan-y-2{grid-row:2}
.seat-plan-deck-v286 .plan-y-3{grid-row:3}
.seat-plan-deck-v286 .plan-y-4{grid-row:4}
.seat-plan-deck-v286 .plan-y-5{grid-row:5}

