.tbt-card { max-width: 720px; border: 1px solid #e5e7eb; border-radius: 16px; padding: 24px; background:#fff; box-shadow:0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06); }
.tbt-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 2px solid #f1f5f9; }
.tbt-title { font-size: 22px; font-weight: 700; color:#1e293b; }
.tbt-steps { display:flex; gap:8px; }
.tbt-step { width:32px; height:32px; border-radius:999px; display:flex; align-items:center; justify-content:center; border:2px solid #cbd5e1; color:#64748b; font-weight:700; font-size:14px; transition:all 0.2s; }
.tbt-step.is-active { background:#61ce70; color:#fff; border-color:#61ce70; } .tbt-tabs { display:flex; gap:8px; overflow-x:auto; padding-bottom:8px; margin-bottom: 10px; border-bottom: 1px solid #e5e7eb; -webkit-overflow-scrolling: touch; }
.tbt-tabs::-webkit-scrollbar { height: 6px; }
.tbt-tab { appearance:none; border:2px solid #22c55e !important; background:#fff !important; padding:10px 16px; border-radius: 999px; font-weight:600; color:#22c55e !important; cursor:pointer; white-space:nowrap; transition:all 0.2s; }
.tbt-tab:hover { background:#f0fdf4 !important; color:#16a34a !important; border-color:#16a34a !important; }
.tbt-tab.is-active { background:#22c55e !important; color:#fff !important; border-color:#22c55e !important; }
.tbt-tab.is-active:hover { background:#16a34a !important; border-color:#16a34a !important; color:#fff !important; }
.tbt-tab:focus { outline:2px solid #61ce70 !important; outline-offset: 2px !important; }
.tbt-row { display:flex; flex-direction:column; gap:8px; margin-bottom: 16px; }
.tbt-row label { font-weight:600; color:#475569; font-size:14px; }
.tbt-required-mark { color: #dc2626; font-weight: 700; margin-left: 2px; }
.tbt-row input[type="text"],
.tbt-row input[type="email"],
.tbt-row input[type="number"],
.tbt-row input[type="date"],
.tbt-row input[type="time"],
.tbt-row select,
.tbt-row textarea { padding:10px 12px; border:2px solid #e2e8f0; border-radius:8px; font-size:15px; transition:all 0.2s; background:#fff; }
.tbt-row input:hover,
.tbt-row select:hover,
.tbt-row textarea:hover { border-color: rgba(97,206,112,0.4); }
.tbt-row input:focus,
.tbt-row select:focus,
.tbt-row textarea:focus { outline:none !important; border-color:#61ce70 !important; box-shadow:0 0 0 3px rgba(97,206,112,0.2) !important; }
.tbt-wrap input:focus,
.tbt-wrap select:focus,
.tbt-wrap textarea:focus,
.tbt-tours-wrap input:focus,
.tbt-tours-wrap select:focus,
.tbt-tours-wrap textarea:focus { outline:none !important; border-color:#61ce70 !important; box-shadow:0 0 0 3px rgba(97,206,112,0.2) !important; }
.tbt-wrap input:hover,
.tbt-wrap select:hover,
.tbt-wrap textarea:hover,
.tbt-tours-wrap input:hover,
.tbt-tours-wrap select:hover,
.tbt-tours-wrap textarea:hover { border-color: rgba(97,206,112,0.5) !important; }
.tbt-row textarea { resize:vertical; min-height:80px; font-family:inherit; }
.tbt-grid { display:grid; grid-template-columns: 1fr; gap:16px; }
@media (min-width: 640px){ .tbt-grid { grid-template-columns: 1fr 1fr; } }
.tbt-counter { display: grid; grid-template-columns: 40px 1fr 40px; align-items: stretch; width: 100%; }
.tbt-counter .tbt-counter-btn { border: 2px solid #e2e8f0; background: #fff; color: #334155; font-size: 18px; font-weight: 700; cursor: pointer; line-height: 1; padding: 0; }
.tbt-counter .tbt-counter-btn.is-minus { border-right: 0; border-radius: 8px 0 0 8px; }
.tbt-counter .tbt-counter-btn.is-plus { border-left: 0; border-radius: 0 8px 8px 0; }
.tbt-counter .tbt-counter-btn:disabled { opacity: .45; cursor: not-allowed; }
.tbt-counter .tbt-counter-btn:hover:not(:disabled) { background: #f0fdf4; border-color: rgba(97,206,112,0.4); }
.tbt-counter .tbt-counter-btn:focus { outline: 2px solid #61ce70 !important; outline-offset: 2px !important; }
.tbt-counter input[type="text"],
.tbt-counter input[type="number"] { border-radius: 0; text-align: center; border-left: 2px solid #e2e8f0; border-right: 2px solid #e2e8f0; min-width: 0; }
.tbt-invalid-field { border-color: #dc2626 !important; box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.12) !important; }
.tbt-row.tbt-row-has-error > label { color: #b91c1c; }
.tbt-actions { display:flex; gap:10px; justify-content:flex-end; margin-top: 12px; }
.tbt-btn { padding:12px 24px; border:none; background:#61ce70 !important; border-color:#61ce70 !important; color:#fff !important; border-radius: 10px; cursor:pointer; font-weight:600; transition:all 0.2s; }
.tbt-btn:hover:not(:disabled) { background:#52b860 !important; border-color:#52b860 !important; transform:translateY(-1px); box-shadow:0 4px 8px rgba(97,206,112,0.3); }
.tbt-btn:focus { outline:2px solid #61ce70 !important; outline-offset:2px !important; background:#61ce70 !important; border-color:#61ce70 !important; }
.tbt-btn:disabled { opacity:.5; cursor:not-allowed; } .tbt-wrap button:hover,
.tbt-wrap button:focus,
.tbt-wrap [type="button"]:hover,
.tbt-wrap [type="button"]:focus,
.tbt-wrap [type="submit"]:hover,
.tbt-wrap [type="submit"]:focus,
.tbt-tours-wrap button:hover,
.tbt-tours-wrap button:focus,
.tbt-tours-wrap [type="button"]:hover,
.tbt-tours-wrap [type="button"]:focus,
.tbt-tours-wrap [type="submit"]:hover,
.tbt-tours-wrap [type="submit"]:focus { background-color:#61ce70 !important; border-color:#61ce70 !important; color:#fff !important; }
.tbt-wrap .tbt-btn:hover:not(:disabled),
.tbt-tours-wrap .tbt-btn:hover:not(:disabled) { background-color:#52b860 !important; border-color:#52b860 !important; color:#fff !important; }
.tbt-wrap .tbt-btn-secondary:hover:not(:disabled),
.tbt-tours-wrap .tbt-btn-secondary:hover:not(:disabled) { background-color:#f0fdf4 !important; color:#61ce70 !important; border-color:#61ce70 !important; }
.tbt-btn-secondary { background:#fff !important; color:#61ce70 !important; border:2px solid #61ce70 !important; }
.tbt-btn-secondary:hover:not(:disabled) { background:#f0fdf4 !important; color:#61ce70 !important; border-color:#61ce70 !important; }
.tbt-btn-secondary:focus { outline:2px solid #61ce70 !important; outline-offset:2px !important; }
.tbt-reset-form { background:#61ce70 !important; border-color:#61ce70 !important; color:#fff !important; margin-top: 16px; }
.tbt-reset-form:hover { background:#52b860 !important; border-color:#52b860 !important; color:#fff !important; }
.tbt-reset-form:focus { outline:2px solid #61ce70 !important; outline-offset:2px !important; }
.tbt-pricebox { margin: 16px 0 20px; padding: 20px; border:2px solid #61ce70; border-radius: 12px; background:linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%); }
.tbt-price-title { font-weight: 700; margin-bottom: 8px; color:#1e293b; font-size:14px; text-transform:uppercase; letter-spacing:0.5px; }
.tbt-price-main { font-size: 28px; font-weight: 800; color:#61ce70; }
.tbt-price-sub { color:#64748b; margin-top: 6px; font-size:14px; }
.tbt-summary { padding: 16px; border:1px solid #e5e7eb; border-radius: 12px; margin-bottom: 16px; background:#f8fafc; }
.tbt-summary-line { margin: 6px 0; color:#1e293b; font-size:15px; }
.tbt-price-inline { margin-top: 8px; }
.tbt-price-inline .tbt-summary-line { font-size: 15px; color:#1e293b; }
.tbt-price-inline .tbt-summary-line strong { font-weight: 600; }
.tbt-price-breakdown {
margin-top: 10px;
opacity: 0;
transform: translateY(4px);
transition: opacity 180ms ease, transform 180ms ease;
}
.tbt-price-breakdown--visible {
opacity: 1;
transform: translateY(0);
}
.tbt-price-breakdown-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 3px 0;
font-size: 14px;
color: #1e293b;
gap: 12px;
}
.tbt-price-breakdown-label {
flex: 1 1 auto;
min-width: 0;
opacity: 0.9;
}
.tbt-price-breakdown-value {
flex: 0 0 auto;
text-align: right;
min-width: 80px;
}
.tbt-price-breakdown-total {
font-weight: 700;
font-size: 1.05em;
border-top: 1px solid rgba(0, 0, 0, 0.1);
margin-top: 6px;
padding-top: 6px;
}
@media (max-width: 600px) {
.tbt-price-breakdown-value {
min-width: 70px;
font-size: 0.95em;
}
.tbt-price-breakdown-row {
font-size: 13px;
}
}
.tbt-msg { margin-top: 10px; }
.tbt-msg.is-error { color: #b00020; font-weight: 600; }
.tbt-error { padding: 16px; background: #fee; border: 1px solid #fcc; border-radius: 8px; color: #c00; margin-bottom: 12px; }
.tbt-error strong { display: block; margin-bottom: 4px; }
.tbt-no-categories { padding: 12px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; color: #64748b; font-style: italic; }
.tbt-routes-msg { margin-top: 8px; }
.tbt-no-routes { padding: 12px; background: #fef3c7; border: 1px solid #fcd34d; border-radius: 8px; color: #92400e; font-style: italic; }
.tbt-return-error { margin-top: 8px; padding: 10px 12px; background: #fee; border: 1px solid #fcc; border-radius: 8px; color: #c00; font-size: 14px; }
.tbt-pickup-address-error,
.tbt-dropoff-address-error,
.tbt-inline-error { margin-top: 8px; padding: 10px 12px; background: #fee; border: 1px solid #fcc; border-radius: 8px; color: #c00; font-size: 14px; }
.tbt-legal-row { margin-bottom: 16px; }
.tbt-legal-label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: 600; color: #475569; font-size: 14px; }
.tbt-legal-label input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }
.tbt-legal-label-text { line-height: 1.5; }
.tbt-legal-label a { color: #61ce70; text-decoration: underline; }
.tbt-legal-label a:hover { color: #52b860; }
.tbt-legal-error { margin-top: 8px; }
.tbt-legal-error.tbt-inline-error { margin-top: 8px; }
.tbt-trip-badge { display: inline-block; padding: 4px 10px; margin-left: 8px; background: rgba(97, 206, 112, 0.1); border: 1px solid rgba(97, 206, 112, 0.3); border-radius: 999px; font-size: 12px; font-weight: 600; color: #52b860; vertical-align: middle; }
.tbt-api-error { margin-bottom: 12px; padding: 12px 16px; background: #fee; border: 1px solid #fcc; border-radius: 8px; color: #c00; font-size: 14px; line-height: 1.5; }
.tbt-field-error { color: #b91c1c; font-size: 13px; margin-top: 6px; }
.tbt-field-error:empty { display: none !important; } .tbt-children-ages-row { margin-top: 4px; margin-bottom: 16px; }
.tbt-children-ages-label { font-weight: 600; color: #475569; font-size: 14px; }
.tbt-children-ages-helper { margin: 0 0 8px; font-size: 13px; color: #64748b; }
.tbt-children-ages-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 10px; align-items: start; }
@media (min-width: 640px) { .tbt-children-ages-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .tbt-children-ages-grid { grid-template-columns: 1fr 1fr; } }
.tbt-children-ages-grid .tbt-child-age { padding: 10px 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-size: 15px; background: #fff; transition: all 0.2s; min-width: 0; max-width: 100%; }
.tbt-children-ages-grid .tbt-child-age:focus { outline: none; border-color: #61ce70; box-shadow: 0 0 0 3px rgba(97,206,112,0.1); }
.tbt-children-ages-error { margin-top: 6px; }
.tbt-leadtime-box,
.tbt-leadtime-box-step2 { margin-top: 10px; padding: 10px; border-radius: 8px; font-size: 14px; background: #fff7ed; border: 1px solid #fdba74; color: #9a3412; line-height: 1.5; }
@media (max-width: 640px) { .tbt-leadtime-box, .tbt-leadtime-box-step2 { padding: 8px; font-size: 13px; } } .tbt-lead-time-warning { display: none !important; margin-bottom: 12px; padding: 12px 16px; background: #fef3c7; border: 1px solid #fcd34d; border-radius: 8px; color: #92400e; font-size: 14px; line-height: 1.5; }
.tbt-leadtime-notice { margin-bottom: 12px; padding: 12px 16px; background: #fef3c7; border: 1px solid #fcd34d; border-radius: 8px; color: #92400e; font-size: 14px; line-height: 1.5; }
.tbt-leadtime-error { margin-bottom: 12px; padding: 12px 16px; background: #fee; border: 1px solid #fcc; border-radius: 8px; color: #c00; font-size: 14px; line-height: 1.5; } .tbt-success { text-align: center; padding: 40px 20px; }
.tbt-success-icon { width: 80px; height: 80px; border-radius: 50%; background: #61ce70; color: #fff; font-size: 48px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.tbt-success-title { font-size: 24px; font-weight: 700; color: #1e293b; margin-bottom: 12px; }
.tbt-success-message { font-size: 16px; color: #475569; margin-bottom: 20px; }
.tbt-success-booking-id { padding: 16px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; color: #1e293b; font-size: 15px; line-height: 1.6; } .flatpickr-calendar { border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.flatpickr-day.selected { background: #61ce70; border-color: #61ce70; }
.flatpickr-day.selected:hover { background: #52b860; border-color: #52b860; }
.flatpickr-time input.flatpickr-hour,
.flatpickr-time input.flatpickr-minute { font-weight: 600; }
.flatpickr-time .flatpickr-time-separator { color: #61ce70; } .tbt-price-table-wrap { margin: 0; }
.tbt-price-table-msg { margin: 0 0 1em; color: #64748b; }
.tbt-price-table-msg.tbt-price-table-msg-error { color: #b91c1c; font-weight: 600; }
.tbt-price-table { width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; font-size: 14px; }
.tbt-price-table th,
.tbt-price-table td { padding: 10px 12px; text-align: left; border: 1px solid #e5e7eb; }
.tbt-price-table thead th { background: #f1f5f9; font-weight: 600; color: #1e293b; }
.tbt-price-table tbody tr:nth-child(even) { background: #f8fafc; }
.tbt-price-table-extra-row { font-weight: 600; background: #f0fdf4 !important; }
.tbt-price-table-extra-row td { border-top: 2px solid #61ce70; } .tbt-tours-prices-wrap { margin: 0; }
.tbt-tours-prices-msg { margin: 0 0 1em; color: #64748b; }
.tbt-tours-prices-msg.tbt-tours-prices-msg-error { color: #b91c1c; font-weight: 600; }
.tbt-tours-prices-container .tbt-price-table { margin-top: 0; }