@font-face{font-family:Manrope;src:url('./manrope-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('./manrope-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('./manrope-700.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('./manrope-800.woff2') format('woff2');font-style:normal;font-weight:800;font-display:swap}
:root,.dark{--background:#faf8f6;--foreground:#39251f;--card:#fff;--card-foreground:#39251f;--primary:#8c4939;--primary-foreground:#fff;--secondary:#f7f3f2;--secondary-foreground:#88564a;--accent:#f8f5f4;--accent-foreground:#88564a;--muted-foreground:#835f56;--border:#ebe2e0;--input:#e1d3d0;--ring:#8c4939}
body{font-family:Manrope,Arial,sans-serif;background:#faf8f6;color:#39251f;-webkit-font-smoothing:antialiased}button,input{font-family:inherit}p{color:#835f56}button,a,input{transition:background-color .16s,border-color .16s,box-shadow .16s}button:focus-visible,a:focus-visible{outline:3px solid #8c4939;outline-offset:4px}h1{font-size:38px;letter-spacing:-1.6px;line-height:1.18;font-weight:800}h2{font-size:21px;font-weight:800;letter-spacing:-.55px}.topbar{height:78px;padding:0 max(4vw,24px);border-bottom:1px solid #eee5e3;gap:24px}.brand{font-weight:800;font-size:27px;letter-spacing:-1.4px}.brand>span:first-child{background:#8c4939;width:38px;height:38px;border-radius:10px}.brand .brand-dot{color:#8c4939}.admin-link{font-size:14px;font-weight:600;color:#7d5348}.booking-main{max-width:1216px;padding:36px 28px 52px}.admin-main{max-width:1360px}.breadcrumb{color:#8c6a61;font-weight:600;font-size:14px;margin-bottom:7px}.page-heading{margin-bottom:24px}.page-heading p:not(.breadcrumb){margin-top:10px;font-size:15px}.trip-badge{background:#fff;border:1px solid #ebe2e0;color:#7d5348;padding:10px 15px;border-radius:7px;font-weight:600}
.booking-steps{list-style:none;display:flex;padding:0;margin:0 0 26px;gap:36px;align-items:center;font-size:14px;font-weight:600;color:#957168}.booking-steps li{display:flex;gap:9px;align-items:center}.booking-steps li>span{display:grid;place-items:center;background:#f2ebe9;color:#8f6b62;font-size:13px;width:26px;height:26px;border-radius:50%;flex-shrink:0}.booking-steps li.current{color:#8c4939}.booking-steps li.current>span{background:#8c4939;color:white}.booking-steps li.done{color:#356852}.booking-steps li.done>span{background:#deefe5;color:#356852}
.trip-strip{background:#39251f;color:white;grid-template-columns:1.4fr 1fr 1fr;border:0;border-radius:12px;padding:22px 26px;gap:26px;margin-bottom:28px}.trip-strip>div{gap:12px}.trip-strip>div>svg{color:#d3beb8;width:21px}.trip-strip small{color:#d3beb9;font-size:12px;margin-bottom:3px}.trip-strip strong{color:#fff;font-size:14px;font-weight:600}.trip-strip>div:first-child strong{font-size:17px}.trip-strip>div:not(:first-child){border-left:1px solid #5e3c34;padding-left:25px}
.booking-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px}.map-panel{padding:25px 28px 23px;border:1px solid #ebe2e0;border-radius:14px;box-shadow:none}.reservation-panel{padding:27px 28px;border:1px solid #ebe2e0;border-top:4px solid #8c4939;border-radius:14px;top:20px;box-shadow:0 8px 30px #5a393110;scroll-margin-top:20px}.section-title p{font-size:13px;color:#98766e}.icon-button{border-color:#ede5e3;color:#895d52}.icon-button:hover{background:#f7f2f1}.bus-tabs[data-slot=tabs-list]{margin:23px 0 3px;padding:0;gap:12px;background:transparent}.bus-tabs [data-slot=tabs-trigger]{height:auto;min-height:78px;border:1px solid #e9dfdd;background:#fdfcfc;border-radius:9px;padding:13px 17px;color:#906a61;gap:12px;justify-content:flex-start;box-shadow:none}.bus-tabs [data-slot=tabs-trigger]>svg{width:23px;height:23px}.bus-tabs [data-slot=tabs-trigger][data-state=active]{background:#f7ede8;border-color:#8c4939;color:#965e50;box-shadow:inset 0 0 0 1px #8c4939}.bus-tabs strong{font-size:16px;font-weight:800}.bus-tabs small{font-size:12px;margin-top:3px;font-weight:600}.legend{gap:20px;font-size:12px;margin:21px 0 18px;color:#805a50}.legend i{width:13px;height:13px;background:#fff;border:1px solid #c3a69e;border-radius:3px}.legend i.selected{background:#8c4939;border-color:#8c4939}.legend i.occupied{background:#f4e6e8;border-color:#dcb4bc}
.bus-map{max-width:332px;padding:23px 22px 16px;background:#f8f5f4;border:1px solid #e1d3d0;border-radius:34px 34px 18px 18px;box-shadow:inset 5px 0 0 #f1eae8,inset -5px 0 0 #f1eae8}.bus-front{color:#997268;padding-bottom:16px;border-bottom:1px solid #e0d1cd}.bus-front>svg{color:#784e43}.bus-front span:last-child{color:#8c4939;font-weight:600}.window-labels{font-size:12px;color:#9e7c73;padding:13px 0}.seat-row{gap:8px;margin-bottom:8px}.seat-row>:nth-child(2){margin-right:12px}.seat-row>:nth-child(3){margin-left:12px}.seat{height:48px;min-width:43px;border-radius:7px;border:1px solid #ccb4ae;border-bottom:3px solid #ccb4ae;background:#fff;color:#70473d;box-shadow:0 2px 0 #eee5e3}.seat svg:not(.seat-lock){opacity:.1}.seat span{font-size:15px;font-weight:800}.seat.selected,.seat.selected:not(:disabled):hover{background:#8c4939;color:#fff;border-color:#703b2e;box-shadow:0 2px 0 #e0d1cd}.seat:not(:disabled):not(.selected):hover{background:#f3eeed;border-color:#8c4939;color:#8c4939}.seat.occupied{background:#f3e7e9;border-color:#d9b8bf;color:#9e4758;box-shadow:none;opacity:1}.seat:disabled:not(.occupied){opacity:.62}.seat.occupied span{font-size:12px;line-height:1}.seat svg.seat-lock{width:12px;height:12px;margin-bottom:2px}.bus-rear{font-size:12px;color:#956c62;font-weight:600}.map-note{font-size:12px;color:#98766e;line-height:1.65;max-width:320px;margin-top:20px}
.selection-ticket{margin:22px 0;background:#faf8f6;border:1px dashed #e1d3d0;border-radius:8px;padding:19px 16px;gap:13px;color:#9a746b}.selection-ticket small{font-size:12px;color:#9d7a71}.selection-ticket strong{font-size:17px;font-weight:800;color:#633f36}.selection-ticket.has-seat{border:1px solid #e3d6d3;background:#f7ede8;color:#8c4939}.selection-ticket.has-seat strong,.selection-ticket.has-seat small{color:#965e50}.selection-ticket>span{font-size:12px;color:#a46859}.hold-notice{background:#fff8e9;color:#86580f;border-color:#e8d6a7;margin-top:-6px;padding:12px 15px}.hold-notice strong{font-size:13px;font-variant-numeric:tabular-nums}.hold-notice p{font-size:12px;color:#8a713c}.hold-notice button{font-size:12px;font-weight:600}.field{font-size:13px;font-weight:700;gap:7px;margin-bottom:19px}input{border:1px solid #e2d4d0;border-radius:7px;height:48px;font-size:16px;padding:0 13px;background:#fff}input::placeholder{font-size:13px;color:#a88a83}input:hover{border-color:#c6aba5}input:focus{outline:none;border-color:#8c4939;box-shadow:0 0 0 3px #8c493916}legend{font-size:13px;font-weight:700}.document-options label{min-width:105px;border-radius:6px;padding:10px 15px;border-color:#eae0de}.document-options label:has([data-state=checked]){background:#f7ede8;border-color:#d7c3be;color:#8c4939}.consent{font-size:12px;color:#957067;line-height:1.65;gap:10px;margin-top:4px;margin-bottom:23px}.consent button{min-width:17px;min-height:17px}.primary{background:#8c4939;border-color:#8c4939;min-height:50px;border-radius:7px;font-weight:700;font-size:14px;box-shadow:0 3px 7px #8c493918}.primary:hover:not(:disabled){background:#703b2e;border-color:#703b2e}.primary:disabled{opacity:1;background:#f0e9e8;border-color:#f0e9e8;color:#b3928a;box-shadow:none}.secondary{border-color:#e9dfdc;color:#7f5045;font-size:14px;border-radius:7px}.secondary:hover:not(:disabled){background:#f8f5f4}.privacy{font-size:12px;color:#9a7971;line-height:1.55}.privacy svg{color:#a67063}.reservation-help{padding-top:18px;margin-top:23px;font-size:12px;border-color:#f0e9e8}.reservation-help strong{font-size:13px;font-weight:700}.reservation-help p{color:#987971;line-height:1.65}.notice{background:#f7ede8;color:#7c4e42;border-color:#e9dedb;font-size:13px}.error{font-size:13px}.success-icon{background:#e4f1ea;color:#28724d}.ticket-seat{background:#f7ede8;color:#8c4939;border-color:#dac8c4}.ticket-seat small,.ticket-seat strong{color:#8c4939}.success h2{font-size:25px}.receipt-details{margin:20px 0;text-align:left;border-block:1px solid #ede5e3;padding:12px 0}.receipt-details>div{display:flex;justify-content:space-between;gap:15px;font-size:13px;margin:8px 0}.receipt-details dt{color:#967269}.receipt-details dd{margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}.mobile-selection{display:none}
.admin-stats{gap:0;border:1px solid #ebe2e0;border-radius:12px;overflow:hidden}.admin-stats>div{border:0;border-radius:0;padding:22px 25px;grid-template-columns:30px 1fr}.admin-stats>div:not(:first-child){border-left:1px solid #f0e8e6}.admin-stats svg{color:#8c4939;width:23px}.admin-stats strong{font-size:27px;font-weight:800;color:#56372f}.admin-stats span{font-size:13px;color:#94736b}.settings-panel,.passengers-panel{border-color:#ebe2e0;border-radius:12px;padding:25px}.settings-panel{border-top:4px solid #8c4939}.settings-panel h2{font-size:19px}.fleet-info{background:#f7ede8;color:#8c4939;font-size:13px}.fleet-info p{font-size:12px;color:#a36e61}.bus-summary>div{background:#f7ede8;border-color:#e7dbd8}.bus-summary strong{color:#7b4d42;font-size:15px}.bus-summary span{font-size:12px;color:#9a7066}.seat-pill{background:#f7ede8;color:#8c4939;border-color:#e9dfdd;padding:5px 10px}.passengers-panel thead{background:#faf8f6}.passengers-panel th{font-size:12px;font-weight:700;color:#97756c;letter-spacing:0}.passengers-panel td{font-size:13px;border-color:#f2eceb}.cancel-button{font-size:12px;color:#a64c5f}.passengers-panel .small-note{padding-top:18px;border-top:1px solid #f1eae8;line-height:1.6;font-size:12px}.empty-passengers{padding:65px 25px}.empty-passengers svg{color:#ba8b7f}.setup-panel{border-top:4px solid #8c4939;max-width:480px}.setup-panel>p{font-size:14px;line-height:1.75}.setup-panel svg{color:#8c4939}footer{padding:22px 0 28px;color:#a2847d;font-size:12px}footer .brand{color:#987269}footer .brand>span:first-child{background:#f0e8e6;color:#976052}
@media(max-width:1000px){.booking-main{padding-inline:22px}.trip-strip{gap:15px;grid-template-columns:1fr 1fr}.trip-strip>div:last-child{grid-column:span 2;border-left:0;padding-left:0}.booking-grid{gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.map-panel,.reservation-panel{padding:23px 20px}.bus-tabs [data-slot=tabs-trigger]{padding:11px 12px;gap:7px}.bus-tabs [data-slot=tabs-trigger]>svg{display:none}.bus-tabs strong{font-size:15px}.legend{gap:13px}.admin-grid{grid-template-columns:1fr}.settings-panel form{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}}
@media(max-width:760px){.booking-grid{grid-template-columns:1fr}.booking-main{padding:25px 17px 96px}.page-heading{margin-bottom:19px}.page-heading h1{font-size:32px;letter-spacing:-1.2px}.page-heading p:not(.breadcrumb){font-size:14px}.trip-badge{display:none}.booking-steps{gap:0;justify-content:space-between;margin-bottom:21px;font-size:11px}.booking-steps li{gap:6px;max-width:31%;line-height:1.45}.booking-steps li>span{height:24px;width:24px;font-size:12px}.trip-strip{padding:20px;gap:17px;margin-bottom:22px}.trip-strip>div:first-child{grid-column:span 2}.trip-strip>div:not(:first-child){border-left:0;padding-left:0;grid-column:auto}.trip-strip>div>svg{width:18px}.trip-strip strong{font-size:12px}.trip-strip>div:first-child strong{font-size:16px}.trip-strip small{font-size:11px}.reservation-panel{position:static;margin-top:2px;padding:24px 22px}.map-panel{padding:23px 20px}.bus-tabs [data-slot=tabs-trigger]{justify-content:center;padding:13px;min-height:74px}.bus-tabs [data-slot=tabs-trigger]>svg{display:block;width:21px}.bus-tabs strong{font-size:16px}.bus-map{max-width:336px}.legend{gap:19px}.field{font-size:14px}.consent{font-size:13px}.mobile-selection{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;justify-content:space-between;gap:12px;align-items:center;padding:13px 17px calc(13px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e4d7d4;box-shadow:0 -5px 25px #5e3b3212}.mobile-selection small{display:block;font-size:11px;color:#9f7a71}.mobile-selection strong{font-size:13px;font-weight:800;color:#6e453b}.mobile-selection .primary{min-height:43px;font-size:12px;padding:10px 13px;white-space:nowrap}.topbar{height:71px;padding-inline:19px;gap:14px}.brand{font-size:24px}.brand>span:first-child{width:34px;height:34px}.admin-link{font-size:12px;max-width:110px;line-height:1.5}.admin-main{padding:25px 17px 45px}.admin-stats{grid-template-columns:1fr}.admin-stats>div:not(:first-child){border-left:0;border-top:1px solid #f0e8e6}.settings-panel form{display:block}.passengers-panel{padding:22px 14px}.passengers-panel h2{font-size:19px}.compact{padding:10px 13px}footer{margin-inline:20px}}
@media(max-width:360px){.booking-steps{font-size:10px}.bus-map{padding-inline:15px}.seat{min-width:40px}.seat-row{gap:6px}.seat-row>:nth-child(2){margin-right:9px}.seat-row>:nth-child(3){margin-left:9px}.legend{gap:11px}.mobile-selection .primary{padding:9px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important;animation:none!important}}
@media print{.booking-steps,.mobile-selection{display:none!important}.reservation-panel{box-shadow:none;border:1px solid #e1d3d0}.receipt-details{display:block}.success h2{color:#39251f}}
/* Legibilidade: mesma identidade azul e branca, com contraste e escala maiores. */
:root,.dark{--foreground:#2f211c;--card-foreground:#2f211c;--muted-foreground:#624f48;--input:#bd978d;--border:#dfcfcb}
body{color:#2f211c;font-size:16px}p{color:#624f48;line-height:1.65}.breadcrumb,.admin-link,.trip-badge{color:#574239;font-size:15px}.section-title p,.page-heading p:not(.breadcrumb){color:#624f48;font-size:15px;line-height:1.6}.booking-steps{font-size:14px;color:#624f48;gap:26px;flex-wrap:wrap}.booking-steps li>span{font-size:14px;width:28px;height:28px}.trip-strip small{color:#f4e6df;font-size:14px}.trip-strip strong{font-size:16px;color:#fff}.trip-strip>div:first-child strong{font-size:18px}.bus-tabs strong{font-size:18px}.bus-tabs small{font-size:14px;color:#574239}.bus-tabs [data-slot=tabs-trigger]{min-height:84px}.bus-tabs [data-slot=tabs-trigger][data-state=active] small{color:#703b2e}.legend{font-size:14px;color:#574239;gap:14px;flex-wrap:wrap}.legend i{width:15px;height:15px}.bus-front,.bus-rear,.window-labels{color:#624f48}.bus-front span,.bus-front span:last-child,.bus-rear,.window-labels{font-size:13px}.map-note{font-size:14px;color:#624f48;line-height:1.65}.seat{height:52px;color:#52342c;border-color:#b78579}.seat span{font-size:18px}.seat.occupied{background:#fbe9ed;color:#862839;border-color:#bb7f8c}.seat.occupied span{font-size:16px;line-height:1.1}.seat svg.seat-lock{width:14px;height:14px}.seat:disabled:not(.occupied){opacity:1;background:#f5f0ee;color:#6f4940}.seat.selected{background:#8c4939;color:#fff}.selection-ticket{border-color:#cbb2ab}.selection-ticket small{font-size:14px;color:#624f48}.selection-ticket strong{font-size:20px;color:#4d3029}.selection-ticket>span{font-size:14px;color:#703b2e}.selection-ticket.has-seat small,.selection-ticket.has-seat strong{color:#703b2e}.field,legend{font-size:16px;color:#2f211c;line-height:1.5}.field{gap:9px;margin-bottom:22px}input{font-size:17px;color:#2f211c;border-color:#bd978d;min-height:52px}input::placeholder{font-size:15px;color:#6c5951;opacity:1}.document-options label{font-size:16px;color:#4d3029;min-height:48px;border-color:#c3a69f}.consent{font-size:14px;color:#574239;line-height:1.7}.consent button{min-width:20px;min-height:20px}.primary,.secondary,.compact{font-size:16px;line-height:1.5}.primary{min-height:52px}.primary:disabled{background:#efe7e5;border-color:#dcccc8;color:#6b4a42}.privacy{font-size:14px;color:#624f48;line-height:1.65;align-items:flex-start}.privacy svg{color:#574239;min-width:19px;margin-top:2px}.hold-notice{background:#fff4d6;border-color:#c9a65b;color:#614000}.hold-notice strong,.hold-notice button{font-size:15px;color:#614000}.hold-notice p{font-size:14px;color:#614000;line-height:1.6}.reservation-help,.reservation-help p{font-size:14px;color:#624f48;line-height:1.7}.reservation-help strong{font-size:15px;color:#2f211c}.notice,.error{font-size:15px;line-height:1.65}.receipt-details>div{font-size:15px}.receipt-details dt{color:#624f48}.admin-stats span,.bus-summary span{font-size:14px;color:#624f48}.bus-summary strong{font-size:17px;color:#4d3029}.fleet-info,.fleet-info p{font-size:14px;color:#4d3029}.passengers-panel th{font-size:14px;color:#574239}.passengers-panel td{font-size:15px;color:#2f211c}.cancel-button{font-size:14px;color:#862839}.small-note,.passengers-panel .small-note{font-size:14px;color:#624f48;line-height:1.7}.empty-passengers p,.setup-panel>p{font-size:15px;color:#624f48}.switch-label{font-size:15px;color:#2f211c}footer{font-size:14px;color:#624f48}.success>small{font-size:14px;color:#624f48}.mobile-selection small{font-size:13px;color:#624f48}.mobile-selection strong{font-size:15px;color:#4d3029}.mobile-selection .primary{font-size:14px}
@media(max-width:1000px){.booking-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.trip-strip strong{font-size:15px}.bus-tabs strong{font-size:17px}.bus-tabs small{font-size:14px}}
@media(max-width:760px){.booking-grid{grid-template-columns:1fr}.booking-steps{font-size:14px;gap:12px;justify-content:flex-start}.booking-steps li{max-width:none;min-width:0;flex:1;line-height:1.5}.booking-steps li>span{width:27px;height:27px;font-size:14px}.trip-strip small{font-size:14px}.trip-strip strong{font-size:15px}.trip-strip>div:first-child strong{font-size:18px}.page-heading p:not(.breadcrumb){font-size:15px}.bus-tabs strong{font-size:17px}.bus-tabs small{font-size:14px}.legend{font-size:14px;gap:12px}.field{font-size:16px}.consent{font-size:14px}.admin-link{font-size:14px;max-width:145px}.mobile-selection{flex-wrap:wrap}.mobile-selection .primary{font-size:14px;padding:11px 13px}.bus-front span,.bus-front span:last-child,.window-labels,.bus-rear{font-size:13px}}
@media(max-width:520px){.booking-steps{display:grid;grid-template-columns:1fr;gap:9px}.booking-steps li{max-width:none}.trip-strip{grid-template-columns:1fr}.trip-strip>div:first-child{grid-column:auto}.bus-tabs [data-slot=tabs-trigger]{padding:12px 8px}.bus-tabs [data-slot=tabs-trigger]>svg{display:none}.legend{gap:10px}.map-panel,.reservation-panel{padding-inline:16px}.mobile-selection>div{flex:1;min-width:130px}.mobile-selection strong{font-size:14px}.mobile-selection .primary{font-size:14px}.privacy{justify-content:flex-start}footer{gap:15px;flex-wrap:wrap}}
/* Texto preto nas opções dos dois ônibus, em todos os estados. */
.bus-tabs [data-slot=tabs-trigger],.bus-tabs [data-slot=tabs-trigger][data-state=active],.bus-tabs [data-slot=tabs-trigger] strong,.bus-tabs [data-slot=tabs-trigger] small,.bus-tabs [data-slot=tabs-trigger][data-state=active] strong,.bus-tabs [data-slot=tabs-trigger][data-state=active] small{color:#000000}
/* Pagamentos PagBank */
.fare-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:16px 0;margin-bottom:16px;border-block:1px solid #e1d3cd;color:#000}.fare-summary strong{font-size:24px}.fare-summary small{flex-basis:100%;font-size:14px}.payment-panel{min-width:0}.payment-panel h2{margin-bottom:12px}.payment-panel>button,.payment-panel>a{width:100%;margin-top:12px}.payment-panel p{line-height:1.7;margin:12px 0}.payment-panel textarea{width:100%;min-height:106px;resize:vertical;padding:12px;font:14px/1.5 monospace;border:1px solid #b99a8e;border-radius:7px;color:#000;background:#fff;overflow-wrap:anywhere}.pix-qr{display:block;width:240px;max-width:100%;height:auto;margin:18px auto;background:#fff}.receipt-instruction{padding:18px;background:#f7ede8;border-left:4px solid #8c4939;border-radius:6px;color:#000}.receipt-instruction p{color:#000}.payment-reference{display:block;overflow-wrap:anywhere;margin-top:18px}.payment-panel dd{max-width:65%}.payments-admin{margin-top:30px;background:#fff;border:1px solid #e1d3cd;border-radius:12px;padding:26px;min-width:0}.payment-settings{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.payment-settings>.small-note{grid-column:1/-1;overflow-wrap:anywhere}.payment-settings>.primary{align-self:start}.payment-toggle{display:flex;align-items:center;gap:10px;align-self:start;margin:12px 0 24px}.payment-toggle input{width:20px;height:20px;flex-shrink:0;accent-color:#8c4939}.payments-admin select{width:100%;font:inherit;background:#fff;border:1px solid #b99a8e;padding:12px;border-radius:7px;color:#000;min-height:48px}.payment-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid #e1d3cd;margin:24px 0;padding:22px 0;gap:22px}.payment-totals strong{font-size:26px;display:block;margin-top:8px}.payment-totals small{display:block}.payment-filters{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.payment-filters .field{flex:1;min-width:180px}.payment-table-wrap{max-width:100%;overflow-x:auto}.payment-table{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}.payment-table th{text-align:left;background:#faf8f6}.payment-table td,.payment-table th{padding:14px 10px;border-bottom:1px solid #e1d3cd;vertical-align:top}.payment-table td:first-child{max-width:240px;overflow-wrap:anywhere}.payment-table small{display:block;line-height:1.6;font-size:12px;margin-top:4px}.payment-status{display:inline-block;padding:5px 8px;background:#fff4d6;border-radius:5px;color:#000}.payment-status.is-paid{background:#e2f2e8}.payment-table .compact{font-size:13px;padding:8px}.payments-admin .small-note{margin-top:18px}.payment-deadline{font-weight:600}.payment-panel .receipt-details dt,.payment-panel .receipt-details dd{overflow-wrap:anywhere}
@media(max-width:760px){.payment-settings{grid-template-columns:1fr}.payment-totals{grid-template-columns:1fr}.payments-admin{padding:20px 16px}.payment-filters{align-items:stretch}.payment-filters>button{width:100%}.fare-summary strong{font-size:22px}}
@media print{body:has(.payment-panel) *{visibility:hidden}.payment-panel,.payment-panel *{visibility:visible}.payment-panel{position:absolute;top:0;left:0;right:0;padding:20px;background:#fff}.payment-panel button,.payment-panel a,.pix-qr,.payment-panel textarea{display:none!important}.payment-panel .receipt-instruction{border:1px solid #8c4939}}

.payment-diagnostic{margin-top:10px;padding:12px;background:#fff4d6;border-left:3px solid #8c4939;min-width:210px;max-width:320px;color:#000}.payment-diagnostic p{font-size:13px;line-height:1.6;margin:8px 0;color:#000}
/* Mapa compacto: remove a moldura externa e o excesso de espaço */
.bus-map {
  max-width: 300px;
  padding: 16px 4px 10px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.bus-map .bus-front { border-bottom: 1px solid #e0d1cd; }
.bus-map .seat-row { justify-content: center; }

/* Administração de acessos */
.treasury-grid{grid-template-columns:1fr}
.access-admin .payment-settings{align-items:end}
.treasury-users{margin-top:22px;border-top:1px solid #e1d3cd}
.treasury-users>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e1d3cd}
.treasury-users span,.treasury-users small{display:block}
.treasury-users small{margin-top:3px;color:#000}
@media(max-width:640px){.treasury-users>div{align-items:flex-start;flex-direction:column}}
.passenger-filters{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:18px;margin:22px 0 4px}
.passenger-filters select{width:100%;min-height:52px;padding:10px 12px;border:1px solid #bd978d;border-radius:7px;background:#fff;color:#000;font:inherit}
.filter-count{padding:12px 0 16px;border-bottom:1px solid #e1d3cd;font-size:14px;color:#624f48}
.access-admin{scroll-margin-top:22px;border-top:4px solid #8c4939}
.access-heading{display:flex;align-items:flex-start;gap:14px}
.access-heading>svg{flex:0 0 auto;color:#8c4939;margin-top:2px}
.access-heading h2{margin:0 0 5px}
.access-heading p{margin:0}
@media(max-width:760px){.passenger-filters{grid-template-columns:1fr}.topbar .admin-link svg{display:none}}

/* Mapa do ônibus: quatro poltronas com medidas idênticas e contorno da carroceria. */
.bus-map {
  position: relative;
  box-sizing: border-box;
  max-width: 300px;
  padding: 19px 10px 43px;
  background: #f8f5f4;
  border: 3px solid #8c4939;
  border-radius: 62px 62px 28px 28px;
  box-shadow: inset 7px 0 0 #efe4e1, inset -7px 0 0 #efe4e1, 0 3px 0 #d8c0ba;
}
.bus-map::before,
.bus-map::after {
  position: absolute;
  z-index: 0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  color: #8c4939;
}
.bus-map::before { content: 'BANHEIRO'; right: 9px; bottom: 13px; }
.bus-map::after { content: '▣'; right: 15px; bottom: 27px; font-size: 15px; }
.bus-map > * { position: relative; z-index: 1; }
.bus-map .bus-front { border-bottom-color: #d8c0ba; }
.bus-map .seat-row {
  display: grid;
  grid-template-columns: 52px 52px 24px 52px 52px;
  gap: 8px;
  justify-content: center;
  margin-bottom: 8px;
}
.bus-map .seat-row > :nth-child(1) { grid-column: 1; margin: 0; }
.bus-map .seat-row > :nth-child(2) { grid-column: 2; margin: 0; }
.bus-map .seat-row > :nth-child(3) { grid-column: 4; margin: 0; }
.bus-map .seat-row > :nth-child(4) { grid-column: 5; margin: 0; }
.bus-map .seat-row .seat {
  box-sizing: border-box;
  width: 52px;
  min-width: 52px;
  max-width: 52px;
  height: 52px;
  min-height: 52px;
  max-height: 52px;
  padding: 0;
}
.bus-map .bus-rear { padding-right: 74px; }
@media(max-width:420px) {
  .bus-map { padding-inline: 6px; }
  .bus-map .seat-row { grid-template-columns: 44px 44px 18px 44px 44px; gap: 6px; }
  .bus-map .seat-row .seat { width: 44px; min-width: 44px; max-width: 44px; height: 46px; min-height: 46px; max-height: 46px; }
}
