/* Transfer.me Booking — estilos base. O tema pode sobrescrever estas classes. */
.tmb { max-width: 640px; margin: 0 auto; font-size: 1rem; line-height: 1.5; }
.tmb h2, .tmb h3 { margin: 1.5rem 0 0.75rem; }
.tmb-form .tmb-field { margin-bottom: 0.5rem; position: relative; }
.tmb-form fieldset { border: 0; padding: 0; margin: 0 0 0.5rem; }
.tmb-form legend { font-weight: 600; margin-bottom: 0.1rem; }
.tmb-form label { display: block; margin-bottom: 0.1rem; }
.tmb-form input[type="text"],
.tmb-form input[type="tel"],
.tmb-form input[type="email"],
.tmb-form input[type="date"],
.tmb-form input[type="time"],
.tmb-form select,
.tmb-form textarea { width: 100%; box-sizing: border-box; min-height: 44px; padding: 0.5rem; font: inherit; }
.tmb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
@media (max-width: 480px) { .tmb-row { grid-template-columns: 1fr; } }
.tmb-suggestions { list-style: none; margin: 0; padding: 0; border: 1px solid #8884; position: absolute; left: 0; right: 0; z-index: 10; background: #fff; color: #111; max-height: 240px; overflow: auto; }
.tmb-suggestions li { padding: 0.6rem 0.75rem; cursor: pointer; min-height: 44px; box-sizing: border-box; }
.tmb-suggestions li:hover, .tmb-suggestions li:focus { background: #0001; }
.tmb-button { display: inline-block; min-height: 44px; padding: 0.6rem 1.2rem; font: inherit; font-weight: 600; cursor: pointer; border: 0; border-radius: 6px; background: #0b5ed7; color: #fff; }
.tmb-button:disabled { opacity: 0.5; cursor: not-allowed; }
.tmb-button-secondary { background: #444; }
.tmb-link { background: none; border: 0; padding: 0.25rem 0; color: #0b5ed7; text-decoration: underline; cursor: pointer; font: inherit; min-height: 44px; }
.tmb-quote { margin: 1rem 0; padding: 0.75rem; border-radius: 6px; background: #0b5ed71a; }
.tmb-total { font-size: 1.25rem; font-weight: 700; margin: 0; }
.tmb-note { font-size: 0.875rem; opacity: 0.8; }
.tmb-result { margin-top: 1rem; }
.tmb-card { border: 1px solid #8884; border-radius: 8px; padding: 0.75rem; margin-bottom: 0.75rem; }
.tmb-card h4 { margin: 0 0 0.5rem; }
.tmb-summary dt { font-weight: 600; margin-top: 0.5rem; }
.tmb-summary dd { margin: 0 0 0.25rem; }
.tmb :focus-visible { outline: 3px solid #0b5ed7; outline-offset: 2px; }
.tmb-quote:empty { display: none; }
.tmb [aria-invalid="true"] { outline: 2px solid #b02a37; outline-offset: 1px; }
a.tmb-link { display: inline-flex; align-items: center; margin-right: 1rem; }
.tmb-card.tmb-status-cancelled { opacity: 0.6; }
.tmb-card.tmb-status-pending { border-color: #b8860b; }
.tmb-mine ul { padding-left: 1.25rem; }
.tmb-result a, .tmb-mine a { overflow-wrap: anywhere; }
.tmb-error { color: #b02a37; font-size: 0.875rem; margin: 0.25rem 0 0; }
.tmb-error::before { content: "⚠ "; }
.tmb-button-waiting, .tmb-button[aria-disabled="true"] { opacity: 0.75; }
.tmb-editor-preview [inert] { pointer-events: none; }
.tmb-box { border: 1px solid #8884; border-radius: 12px; padding: 0.75rem; margin: 0 0 0.5rem; }
.tmb-box-title { margin: 0 0 0.75rem; }
.tmb-consent-note { margin: 0 0 0.75rem; }

.tmb-driver-box{border:1px solid #8884;border-radius:10px;padding:.6rem .8rem;margin:0 0 .6rem;display:flex;flex-direction:column;gap:.2rem;}
.tmb-driver-label{font-size:.8rem;opacity:.7;text-transform:uppercase;letter-spacing:.03em;}
.tmb-driver-value{font-size:1rem;font-weight:600;}
.tmb-driver-route{display:grid;gap:.5rem;}
.tmb-driver-price{background:#0f4c5c;color:#fff;border-color:transparent;}
.tmb-driver-price .tmb-driver-label{opacity:.85;}
.tmb-alert{background:#f59e0b;color:#111;font-weight:700;padding:.6rem .8rem;border-radius:8px;cursor:pointer;margin:0 0 .75rem;}

.tmb-button[hidden]{display:none !important;}

.tmb-booking-card{background:linear-gradient(180deg,#ffffff,#f4f8fb);border:1px solid #d6e2ea;border-radius:14px;padding:1.25rem 1.25rem .75rem;box-shadow:0 6px 18px rgba(15,76,92,.08);}
.tmb-booking-card .tmb-summary dt{color:#0f4c5c;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;}
.tmb-booking-card .tmb-summary dd{font-size:1rem;margin-bottom:.6rem;}
.tmb-status-completed{border-color:#9fd8b5;background:linear-gradient(180deg,#f3fbf6,#e6f5ec);}
.tmb-thanks{margin:0 0 .75rem;padding:.6rem .8rem;border-radius:8px;background:#0f4c5c;color:#fff;font-weight:600;}
.tmb-status-cancelled{opacity:.75;}

.tmb-info-grid{display:grid;gap:.75rem;margin:0 0 .75rem;}
.tmb-info-box{background:#fff;border:1px solid #d6e2ea;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 8px rgba(15,76,92,.06);}
.tmb-info-box dl{margin:0;}
.tmb-info-box dt{color:#0f4c5c;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;margin-top:.5rem;}
.tmb-info-box dt:first-child{margin-top:0;}
.tmb-info-box dd{margin:0;font-size:1rem;}
.tmb-total-value strong{font-size:1.3rem;}

.tmb-title-done{font-size:1.6rem;margin:.5rem 0 .25rem;text-align:center;}
.tmb-title-meta{font-size:.85rem;opacity:.7;text-align:center;margin:0 0 1rem;}

/* v1.2.8 — mesmo estilo de caixas da página de conclusão, aplicado aos formulários */
.tmb-box{background:#fff;border:1px solid #d6e2ea;border-radius:14px;padding:1rem 1.1rem .75rem;box-shadow:0 2px 10px rgba(15,76,92,.07);}
.tmb-form legend{color:#0f4c5c;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;}
.tmb-form label{color:#0f4c5c;font-size:.85rem;font-weight:600;}
.tmb-form input[type="text"],.tmb-form input[type="tel"],.tmb-form input[type="email"],.tmb-form input[type="date"],.tmb-form input[type="time"],.tmb-form select,.tmb-form textarea{border:1px solid #bcd0db;border-radius:10px;background:#fbfdfe;}
.tmb-form input:focus,.tmb-form select:focus,.tmb-form textarea:focus{border-color:#0f4c5c;outline:none;box-shadow:0 0 0 3px rgba(15,76,92,.15);}
.tmb-button{border-radius:10px;}
.tmb-button:not(.tmb-button-secondary){background:#0f4c5c;}
.tmb-driver-box{background:#fff;border:1px solid #d6e2ea;border-radius:12px;box-shadow:0 2px 8px rgba(15,76,92,.06);}

/* v1.2.9 — tipografia, cores e espaçamentos iguais à página de reserva */
.tmb-box{background:#fff;border:1px solid #d6e2ea;border-radius:12px;padding:14.4px 16px;margin:0 0 12px;box-shadow:0 2px 8px rgba(15,76,92,.06);}
.tmb-box-title{font-size:25.6px;font-weight:700;color:#0f1b24;margin:0 0 12px;line-height:1.2;}
.tmb-form legend{font-size:12.8px;font-weight:600;color:#0f4c5c;text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;}
.tmb-form label{font-size:12.8px;font-weight:600;color:#0f4c5c;text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;}
.tmb-form .tmb-field{margin-bottom:8px;}
.tmb-form input[type="text"],.tmb-form input[type="tel"],.tmb-form input[type="email"],.tmb-form input[type="date"],.tmb-form input[type="time"],.tmb-form select,.tmb-form textarea{font-size:16px;color:#0f1b24;border:1px solid #bcd0db;border-radius:8px;padding:8px 12px;}
.tmb-consent-note{font-size:14px;color:#45545f;line-height:1.5;margin:0 0 12px;}
.tmb-button{font-size:16px;font-weight:600;padding:9.6px 19.2px;border-radius:8px;}
.tmb-button:not(.tmb-button-secondary){background:#0f4c5c;color:#fff;}
.tmb-quote{background:#eef4f7;border-radius:8px;padding:12px;margin:12px 0;}
.tmb-total{font-size:20.8px;font-weight:700;color:#0f1b24;}

/* v1.2.9b — prioridade para ganhar ao tema */
.tmb-form legend{color:#0f4c5c !important;font-weight:600 !important;}
.tmb-form label{color:#0f4c5c !important;font-weight:600 !important;}
.tmb-form .tmb-button,#tmb-confirm,#tmb-submit{border-radius:8px !important;font-weight:600 !important;}
.tmb-form .tmb-button:not(.tmb-button-secondary),#tmb-confirm,#tmb-submit{background:#0f4c5c !important;color:#fff !important;}

/* v1.2.12 — título de reserva numa barra escura, como o rodapé */
.tmb .tmb-bar{background:#0f4c5c;color:#fff;font-size:20.8px;font-weight:700;line-height:1.25;text-align:center;padding:12px 16px;border-radius:12px;margin:0 0 12px;}

/* v1.2.14 — faixa de conclusão em azul-escuro */
.tmb-thanks{background:#0f1b24 !important;color:#fff !important;}

/* v1.2.15 — Recolha e Destino em negrito na página de conclusão */
.tmb-info-grid > .tmb-info-box:nth-child(2) dt,
.tmb-info-grid > .tmb-info-box:nth-child(2) dd{font-weight:700 !important;}

/* v1.2.16 — palavras Recolha e Destino em negrito no formulário */
.tmb-form legend,.tmb-form label{font-weight:700 !important;}

/* v1.2.17 — Morada de recolha/destino em letra normal; títulos Recolha/Destino em negrito */
.tmb-form legend{font-weight:700 !important;}
#tmb-pickup-text,#tmb-dropoff-text{}
.tmb-form label[for="tmb-pickup-text"],.tmb-form label[for="tmb-dropoff-text"]{font-weight:400 !important;text-transform:none !important;font-size:16px !important;color:#0f1b24 !important;letter-spacing:0 !important;}

/* v1.2.23 — hora em dois campos HH : MM */
.tmb-time-parts{display:flex;align-items:center;gap:.4rem;}
.tmb-time-parts input{width:4.5rem;min-height:44px;padding:8px;font-size:16px;text-align:center;border:1px solid #bcd0db;border-radius:8px;color:#0f1b24;}
.tmb-time-parts span{font-size:18px;font-weight:700;color:#0f4c5c;}

/* v1.2.24 — HH e MM com a mesma altura da caixa da data */
.tmb-time-parts input{box-sizing:border-box !important;height:44px !important;min-height:44px !important;padding:8px 12px !important;line-height:24px !important;width:4.5rem;}

/* v1.2.25 — rótulos mais próximos dos campos */
.tmb-form label{line-height:1.25 !important;margin-bottom:2px !important;}
.tmb-form .tmb-field > label{display:block !important;}

/* v1.2.26 — rótulos sem altura mínima (espaço mínimo entre rótulo, título e campo) */
.tmb-form label{min-height:0 !important;height:auto !important;display:block !important;align-items:initial !important;margin-bottom:0 !important;}
.tmb-form legend{margin-bottom:0 !important;min-height:0 !important;}

/* v1.2.27 — títulos e rótulos do formulário em laranja e 2px maiores (moradas mantêm estilo normal) */
.tmb-form legend,
.tmb-form label:not([for="tmb-pickup-text"]):not([for="tmb-dropoff-text"]):not(:has(input)){color:#ea580c !important;font-size:14.8px !important;}
.tmb-form legend,
.tmb-form label[for="tmb-pickup-text"],
.tmb-form label[for="tmb-dropoff-text"]{}

/* v1.2.29 — botão Agendar Viagem em laranja */
#tmb-submit{background:#ea580c !important;color:#fff !important;}

/* v1.2.31 — (opcional) em letra pequena e cor normal */
.tmb-form label .tmb-optional{font-size:12.8px !important;font-weight:400 !important;color:#0f1b24 !important;text-transform:none !important;letter-spacing:0 !important;}

/* Nota de privacidade: letra pequena depois do botão */
.tmb-form .tmb-consent-note,.tmb-consent-note{font-size:12px !important;line-height:1.4 !important;margin:8px 0 0 !important;color:#45545f;}
