/* RC13 dashboard, staff isolation, and booking-operation refinements. */
.dtt-dashboard-booking-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}
.dtt-dashboard-booking-kpis .dtt-stat-card{min-width:0;padding:10px}
.dtt-dashboard-booking-kpis .dtt-stat-card h3,.dtt-dashboard-booking-kpis .dtt-stat-card strong{min-width:0;max-width:100%}
.dtt-dashboard-booking-kpis .dtt-stat-card h3{padding-right:26px;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis .dtt-stat-card strong{display:block;width:100%;max-width:100%;margin:16px 0 5px;font-size:clamp(14px,10cqi,24px);line-height:1.1;letter-spacing:-.02em;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:normal;font-variant-numeric:tabular-nums}
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis .dtt-stat-card .dtt-stat-icon{top:9px!important;right:8px!important;bottom:auto!important;width:20px!important;height:20px!important;transform:none!important;display:grid!important;place-items:center!important}
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis .dtt-stat-card .dtt-stat-icon .dtt-ui-icon{width:12px!important;height:12px!important}
.dtt-dashboard-value-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:12px}
.dtt-dashboard-overview .dtt-bar-chart{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.dtt-dashboard-overview .dtt-dashboard-lower-grid{grid-template-columns:170px 230px minmax(0,1fr);align-items:stretch;margin-bottom:12px}
.dtt-dashboard-overview .dtt-dashboard-lower-grid>.dtt-dashboard-card{min-width:0}
.dtt-dashboard-overview .dtt-recent-quotations-card{overflow:hidden}
.dtt-dashboard-overview .dtt-recent-quotations-card .dtt-table-wrap{overflow-x:auto}
.dtt-dashboard-overview .dtt-recent-quotations-card .dtt-table{width:100%;min-width:620px}
body.logged-in .dtt-table tbody tr.dtt-quotation-row-admin-review{background:#edf9f1!important}
body.logged-in .dtt-table tbody tr.dtt-quotation-row-admin-review:hover{background:#e4f6ea!important}
.dtt-role-staff form:has(input[value^="delete_"]){display:none!important}
.dtt-dashboard-kpi-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid #d6e2ef;border-radius:8px;background:#fff}
.dtt-dashboard-kpi-filter-title{display:grid;gap:2px;margin-right:auto;min-width:150px}
.dtt-dashboard-kpi-filter-title strong{font-size:12px;color:#05255f}
.dtt-dashboard-kpi-filter-title span{font-size:12px;color:#52668a}
.dtt-dashboard-kpi-filter label{display:grid;gap:4px;font-size:12px;font-weight:700;color:#05255f}
.dtt-dashboard-kpi-filter select,.dtt-dashboard-kpi-filter input{height:34px;min-width:135px;border:1px solid #cddbea;border-radius:6px;padding:0 9px;background:#fff;color:#05255f}
.dtt-agent-payment-card{margin:12px 0;padding:14px}
.dtt-agent-payment-form{max-width:none!important}
.dtt-agent-add-payment-button{order:-1}
.dtt-payment-review-actions{display:flex;gap:6px;align-items:center;margin-top:6px}
.dtt-payment-review-actions form{margin:0}
.dtt-payment-status{display:inline-flex;white-space:nowrap}
.dtt-payment-status-pending{background:#fff3d6!important;color:#9a6500!important}
.dtt-payment-status-verified{background:#e5f7eb!important;color:#167547!important}
.dtt-payment-status-declined{background:#fde9e8!important;color:#a62c2a!important}
.dtt-payment-receipt-unavailable{color:#56698f}
.dtt-agent-payment-card{position:relative;margin:14px 0 18px;padding:14px 46px 14px 14px}
.dtt-agent-payment-close{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:28px;height:28px;border:1px solid #cfdceb;border-radius:999px;background:#fff;color:#05255f;font-size:20px;line-height:1;text-decoration:none}
.dtt-agent-payment-close:hover{background:#f5f8fc}
.dtt-agent-payment-form{grid-template-columns:150px 150px 190px 220px minmax(180px,1fr) auto auto!important;max-width:none!important}
.dtt-payment-upload-field input[type=file]{height:40px;padding:7px 8px;border:1px solid #cddbea;border-radius:6px;background:#fff}
.dtt-payment-method-button-wrap{align-self:end}
.dtt-payment-method-button-wrap .dtt-button{min-height:40px;white-space:nowrap}
.dtt-payment-methods-modal{width:min(720px,calc(100vw - 32px));max-height:82vh;padding:0;border:0;border-radius:12px;box-shadow:0 24px 70px rgba(4,20,54,.24);color:#172033}
.dtt-payment-methods-modal::backdrop{background:rgba(4,20,54,.46)}
.dtt-payment-methods-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #dbe5ef;background:#f8fbff}
.dtt-payment-methods-modal-head span{display:block;color:#066f69;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.dtt-payment-methods-modal-head h3{margin:3px 0 0;color:#05255f;font-size:18px}
.dtt-payment-methods-close{display:grid;place-items:center;width:30px;height:30px;border:1px solid #cfdceb;border-radius:999px;background:#fff;color:#05255f;font-size:20px;cursor:pointer}
.dtt-payment-methods-body{display:grid;gap:10px;padding:18px 20px 22px;overflow:auto}
.dtt-payment-methods-body section{padding:12px 14px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}
.dtt-payment-methods-body h4{margin:0 0 8px;color:#05255f;font-size:12px}
.dtt-payment-methods-body p{margin:4px 0;color:#334155;font-size:12px;line-height:1.5}
.dtt-payment-methods-body a{font-weight:800;color:#0a65c7}
.dtt-ar-dropdown{position:relative}
.dtt-ar-dropdown>summary{list-style:none;cursor:pointer}
.dtt-ar-dropdown>summary::-webkit-details-marker{display:none}
.dtt-ar-dropdown-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;display:grid;min-width:220px;padding:6px;border:1px solid #cfdaea;border-radius:8px;background:#fff;box-shadow:0 12px 30px rgba(4,20,54,.14)}
.dtt-ar-dropdown-menu a{display:block;padding:8px 10px;border-radius:6px;color:#05255f;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
.dtt-ar-dropdown-menu a:hover{background:#f1f6fb}
.dtt-dashboard-booking-kpis.is-staff{grid-template-columns:repeat(6,minmax(0,1fr))}

.dtt-reference-booking-index .dtt-management-list-section,
.dtt-reference-expenses-index .dtt-management-list-section,
.dtt-booking-review-screen .dtt-form-section,
.dtt-screen-booking-view .dtt-booking-operation-card,
.dtt-screen-booking-view .dtt-booking-entry-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.dtt-reference-booking-index .dtt-management-list-section:hover,
.dtt-reference-expenses-index .dtt-management-list-section:hover,
.dtt-booking-review-screen .dtt-form-section:hover,
.dtt-screen-booking-view .dtt-booking-operation-card:hover,
.dtt-screen-booking-view .dtt-booking-entry-card:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(6,22,56,.065);border-color:#c7d8e8}

.dtt-payment-compact-row{display:grid;grid-template-columns:150px 150px 190px 220px auto;gap:8px;align-items:end;max-width:900px;width:100%;justify-content:start}
.dtt-payment-compact-row>label{display:grid!important;grid-template-columns:1fr!important;gap:5px;align-items:start;min-width:0;margin:0!important}
.dtt-payment-compact-row>label>span{display:block;margin:0;font-size:12px;font-weight:700;line-height:1.2}
.dtt-payment-compact-row>label>input{width:100%;min-width:0}
.dtt-payment-compact-row .dtt-booking-card-actions{padding:0;margin:0;align-self:end}
.dtt-payment-compact-row .dtt-button{min-height:40px;white-space:nowrap}
.dtt-expense-compact-row{display:grid!important;grid-template-columns:420px 180px 110px;gap:8px;align-items:center;width:max-content;max-width:100%;justify-content:start}
.dtt-expense-ledger-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center}
.dtt-expense-submit-inline{white-space:nowrap}
.dtt-tab-panel[data-dtt-panel="expense"]>.dtt-tab-edit-form>.dtt-tab-save-row{display:none!important}
.dtt-hotel-grid-compact{display:grid!important;grid-template-columns:360px 250px 250px 110px;gap:8px;align-items:center;width:max-content;max-width:100%;justify-content:start}
.dtt-expense-compact-row .dtt-row-actions,.dtt-hotel-grid-compact .dtt-row-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;margin:0!important;padding:0!important;min-width:0}
.dtt-expense-compact-row .dtt-row-actions .dtt-button,.dtt-hotel-grid-compact .dtt-row-actions .dtt-button{width:110px;min-width:110px;justify-content:center;margin:0!important}
[data-dtt-row-template][hidden],[data-dtt-day-block-template][hidden]{display:none!important}
.dtt-snapshot-readonly{padding:12px;border:1px solid var(--dtt-line);border-radius:var(--dtt-radius-control);background:var(--dtt-surface-soft)}
.dtt-snapshot-readonly>span{display:block;margin-bottom:7px;color:var(--dtt-navy);font-size:12px;font-weight:800;text-transform:uppercase}
.dtt-snapshot-readonly p{margin:0;color:var(--dtt-ink);font-size:12px;line-height:1.55;white-space:normal}
.dtt-booking-agent-label{display:block;color:var(--dtt-navy);font-size:12px!important;font-weight:800!important;letter-spacing:.02em}
.dtt-booking-agent-name{display:block;margin-top:2px;color:var(--dtt-ink);font-size:12px;font-weight:800;line-height:1.4}
.dtt-quote-document-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.dtt-quote-document-actions .dtt-button{display:inline-flex;align-items:center;gap:6px}
.dtt-ar-actions{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}

/* Agent client-approval notification state. */
.dtt-client-approval-form{margin-top:10px}
.dtt-client-approval-notify-button{width:100%;min-width:0!important;max-width:100%;padding:8px 10px!important;white-space:normal!important;line-height:1.2!important;text-align:center;overflow-wrap:anywhere}
.dtt-client-approval-state{display:flex;gap:9px;align-items:flex-start;margin-top:10px;padding:10px 12px;border:1px solid var(--dtt-line);border-radius:8px;background:var(--dtt-surface-soft)}
.dtt-client-approval-state .dtt-ui-icon{flex:0 0 auto;margin-top:1px}
.dtt-client-approval-state strong,.dtt-client-approval-state span{display:block}
.dtt-client-approval-state strong{color:var(--dtt-navy);font-size:12px;line-height:1.3}
.dtt-client-approval-state span{margin-top:2px;color:var(--dtt-muted);font-size:12px;line-height:1.35}
.dtt-client-approval-state.is-admin-review{border-color:#f2c76b;background:#fff9ea}

/* Add/Edit Hotel: keep information controls compact and top-aligned. */
.dtt-hotel-information-grid{align-items:start!important}
.dtt-hotel-information-grid>label{display:flex!important;flex-direction:column;gap:8px;align-self:start!important;justify-content:flex-start;margin:0!important;min-width:0;height:auto!important}
.dtt-hotel-information-grid>label>span:first-child{display:block;margin:0!important;line-height:1.2}
.dtt-hotel-information-grid>label:nth-child(7){grid-column:1;align-self:start!important}
.dtt-hotel-information-grid>label:nth-child(7) input[type=date]{display:block;width:100%;height:42px;min-height:42px;margin:0!important;padding:0 12px}
.dtt-hotel-information-grid>label:nth-child(8){grid-column:2;align-self:start!important;gap:4px!important}
.dtt-hotel-information-grid>label:nth-child(8)>.dtt-upload-status:empty{display:none!important}
.dtt-hotel-information-grid>label:nth-child(8)>.dtt-photo-edit-grid{margin:0!important;padding:0!important}
.dtt-hotel-information-grid>label:nth-child(9){grid-column:3!important;align-self:start!important}
.dtt-hotel-information-grid>label:nth-child(9).dtt-grid-span{grid-column:3!important}
.dtt-hotel-information-grid>label:nth-child(9) textarea{display:block;width:100%;min-height:92px;margin:0!important;resize:vertical}

/* Add/Edit Hotel: one-line room editor and aligned room media controls. */
.dtt-room-all-fields-grid{display:grid!important;grid-template-columns:minmax(160px,1.35fr) minmax(140px,1.1fr) 70px 70px 110px 90px 110px;gap:8px;align-items:end;width:100%;min-width:0}
.dtt-room-all-fields-grid>label{min-width:0;margin:0!important}
.dtt-room-all-fields-grid input{width:100%;min-width:0}
.dtt-room-media-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start!important;margin-top:8px}
.dtt-room-media-grid>label{display:flex!important;flex-direction:column;gap:8px;align-self:start;justify-content:flex-start;margin:0!important;min-width:0;height:auto!important}
.dtt-room-media-grid>label>span:first-child{display:block;margin:0!important;line-height:1.2}
.dtt-room-media-grid textarea{display:block;width:100%;min-height:160px!important;margin:0!important;resize:vertical}
.dtt-room-media-grid input[type=file]{display:block;width:100%;margin:0!important}

@media(max-width:1180px){.dtt-dashboard-booking-kpis,.dtt-dashboard-booking-kpis.is-staff{grid-template-columns:repeat(4,minmax(0,1fr))}.dtt-dashboard-overview .dtt-bar-chart{grid-template-columns:repeat(4,minmax(0,1fr))}.dtt-payment-compact-row{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.dtt-payment-compact-row .dtt-booking-card-actions{grid-column:1/-1}.dtt-dashboard-value-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.dtt-expense-ledger-head{grid-template-columns:auto minmax(0,1fr) auto}.dtt-dashboard-overview .dtt-dashboard-lower-grid{grid-template-columns:1fr 1fr}.dtt-dashboard-overview .dtt-dashboard-lower-grid>:last-child{grid-column:1/-1}.dtt-expense-compact-row,.dtt-hotel-grid-compact{width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.dtt-room-all-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dtt-hotel-information-grid>label:nth-child(7),.dtt-hotel-information-grid>label:nth-child(8),.dtt-hotel-information-grid>label:nth-child(9){grid-column:auto!important}}
@media(max-width:760px){.dtt-dashboard-booking-kpis,.dtt-dashboard-booking-kpis.is-staff{grid-template-columns:repeat(2,minmax(0,1fr))}.dtt-dashboard-overview .dtt-bar-chart{grid-template-columns:repeat(2,minmax(0,1fr))}.dtt-dashboard-value-layout,.dtt-payment-compact-row,.dtt-expense-compact-row,.dtt-hotel-grid-compact,.dtt-expense-ledger-head,.dtt-dashboard-overview .dtt-dashboard-lower-grid{grid-template-columns:1fr}.dtt-dashboard-overview .dtt-dashboard-lower-grid>:last-child{grid-column:auto}.dtt-payment-compact-row .dtt-booking-card-actions{grid-column:auto}.dtt-expense-compact-row .dtt-row-actions,.dtt-hotel-grid-compact .dtt-row-actions{justify-content:flex-start}.dtt-expense-compact-row .dtt-row-actions .dtt-button,.dtt-hotel-grid-compact .dtt-row-actions .dtt-button{width:auto;min-width:110px}.dtt-room-all-fields-grid,.dtt-room-media-grid{grid-template-columns:1fr}}
@media(max-width:480px){.dtt-dashboard-booking-kpis,.dtt-dashboard-booking-kpis.is-staff{grid-template-columns:1fr}.dtt-dashboard-overview .dtt-bar-chart{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.dtt-reference-booking-index .dtt-management-list-section,.dtt-reference-expenses-index .dtt-management-list-section,.dtt-booking-review-screen .dtt-form-section,.dtt-screen-booking-view .dtt-booking-operation-card,.dtt-screen-booking-view .dtt-booking-entry-card{transition:none!important;transform:none!important}}

/* RC37 Booking Policy consent, modal, and responsive reading surface. */
.dtt-policy-consent{display:grid;gap:12px;width:100%;padding:15px;border:1px solid #ccdae9;border-radius:12px;background:#f8fbff}
.dtt-policy-consent>label{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5}
.dtt-policy-consent>label input{flex:0 0 auto;margin-top:3px}
.dtt-policy-consent>[data-dtt-policy-open]{justify-self:start;white-space:normal;text-align:left}
.dtt-policy-hint{margin:0;font-size:12px;color:#59677a}
.dtt-policy-dialog{width:min(760px,calc(100vw - 32px));max-height:min(90vh,920px);padding:0;border:1px solid #d3dfeb;border-radius:14px;color:#17304b;box-shadow:0 24px 80px rgba(7,22,50,.28)}
.dtt-policy-dialog::backdrop{background:rgba(6,20,42,.62)}
.dtt-policy-dialog[open]{display:flex;flex-direction:column}
.dtt-policy-dialog-heading,.dtt-policy-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:#f7faff}
.dtt-policy-dialog-heading{border-bottom:1px solid #dde7f0}
.dtt-policy-dialog-heading h3{margin:0;font-size:18px}
.dtt-policy-dialog-footer{border-top:1px solid #dde7f0}
.dtt-policy-dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 24px;line-height:1.7;flex:1}
.dtt-policy-contents{font-size:14px;overflow-wrap:anywhere;white-space:normal}
@media(max-width:640px){.dtt-policy-dialog{width:calc(100vw - 16px);max-height:94vh}.dtt-policy-dialog-heading,.dtt-policy-dialog-footer{padding:12px}.dtt-policy-dialog-body{padding:14px}.dtt-policy-dialog-heading h3{font-size:15px}.dtt-policy-dialog-footer .dtt-button{width:100%}}

/* RC37 agreement belongs at the end of the modal, not beside Review confirmation. */
.dtt-policy-dialog-footer{flex-direction:column;align-items:stretch}
.dtt-policy-dialog-accept{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}
.dtt-policy-dialog-accept input{flex:0 0 auto;margin-top:3px}
.dtt-policy-dialog-footer>[data-dtt-policy-read]{align-self:flex-end}
/* RC37 QA: readable policy structure, honest disabled states, visible acceptance. */
.dtt-policy-contents p{margin:0 0 12px}
.dtt-policy-contents .dtt-policy-section{margin:26px 0 10px;padding-bottom:8px;border-bottom:2px solid var(--dtt-accent,#0aa99f);color:var(--dtt-ink,#10214f);font-size:15px;letter-spacing:.02em}
.dtt-policy-contents .dtt-policy-section:first-child{margin-top:0}
.dtt-policy-contents .dtt-policy-subsection{margin:20px 0 6px;color:var(--dtt-navy,#0b246d);font-size:14px}
.dtt-policy-contents .dtt-policy-label{margin:14px 0 4px;color:var(--dtt-ink,#10214f);font-size:13px;font-weight:700}
.dtt-policy-contents .dtt-policy-emphasis{color:var(--dtt-red,#d33f49);font-size:13px}
.dtt-policy-dialog-hint{margin:0;font-size:12px;color:var(--dtt-muted,#56698f)}
.dtt-review-confirmation .dtt-policy-dialog-accept input[type="checkbox"]{flex:0 0 18px;width:18px;height:18px;min-height:0;margin-top:1px;padding:0;accent-color:var(--dtt-accent,#0aa99f)}
.dtt-policy-dialog-accept:has(input:disabled){color:var(--dtt-muted,#56698f);cursor:not-allowed}
.dtt-policy-dialog-footer>[data-dtt-policy-read]:disabled,.dtt-policy-dialog-footer>[data-dtt-policy-read]:disabled:hover,.dtt-policy-dialog-footer>[data-dtt-policy-read]:disabled:focus{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none;color:#fff;background:var(--dtt-mockup-teal,#00a89b);border-color:var(--dtt-mockup-teal,#00a89b)}
.dtt-policy-dialog :focus-visible{outline:2px solid var(--dtt-accent,#0aa99f);outline-offset:2px}
.dtt-policy-hint[data-state="accepted"]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-left:3px solid var(--dtt-green,#12a85b);border-radius:var(--dtt-radius-control,6px);background:#eefaf3;color:#0b7a42;font-weight:600}
.dtt-policy-hint[data-state="accepted"]::before{content:"\2713";font-weight:700}
@media(max-width:640px){.dtt-policy-dialog-accept{padding:6px 0}.dtt-review-confirmation .dtt-policy-dialog-accept input[type="checkbox"]{flex-basis:22px;width:22px;height:22px}}
/* RC38 F08: proof stays next to the acknowledgement receipt; agent Payments card on Quotation Details. */
.dtt-payment-receipt-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dtt-payment-receipt-actions .dtt-button{white-space:nowrap}
.dtt-agent-quotation-payments{display:grid;gap:10px;min-width:0}
.dtt-agent-quotation-payments .dtt-booking-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dtt-agent-payment-history .dtt-booking-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.dtt-agent-payment-history .dtt-booking-table{min-width:560px}
@media(max-width:640px){.dtt-payment-receipt-actions{flex-direction:column;align-items:stretch}.dtt-payment-receipt-actions .dtt-button{width:100%;justify-content:center}.dtt-agent-quotation-payments .dtt-booking-metric-grid{grid-template-columns:1fr}}
/* RC57 F10: passenger / customer details (Upload Customer Details, Booking Details Passengers tab). */
.dtt-passengers-card,.dtt-passengers-panel{display:grid;gap:12px;min-width:0}
.dtt-passengers-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#334155;font-size:12px}
.dtt-passengers-summary>span{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid #dbe5ef;border-radius:999px;background:#f8fbff}
.dtt-passengers-summary .dtt-passengers-progress.is-complete{border-color:#bfe8cf;background:#eefaf3;color:#0b7a42;font-weight:700}
.dtt-passengers-summary .dtt-passengers-badge{border-color:#cfe3f7;background:#eef6ff;color:#0a4f9c;font-weight:700}
.dtt-passengers-summary .dtt-passengers-warning{border-color:#f3d9a4;background:#fff8e6;color:#8a5a00;font-weight:700}
.dtt-passengers-actions{display:flex;flex-wrap:wrap;gap:8px}
.dtt-passengers-actions .dtt-button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dtt-passengers-form{display:grid;gap:12px;min-width:0;max-width:none}
.dtt-passengers-toolbar{display:grid;gap:4px}
.dtt-passengers-passport-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:#05255f;font-size:12px;font-weight:700;cursor:pointer}
.dtt-passengers-passport-toggle input{width:18px;height:18px;margin:0}
.dtt-passengers-help{margin:0;color:#52668a;font-size:12px}
.dtt-passenger-rows{display:grid;gap:10px;min-width:0}
.dtt-passenger-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(140px,1fr) minmax(120px,1fr) minmax(140px,1fr) minmax(150px,1fr);gap:10px;align-items:end;min-width:0;margin:0;padding:12px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}
.dtt-passenger-row legend{padding:0 6px;color:#05255f;font-size:12px;font-weight:800}
.dtt-passenger-type-chip{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#e8f6f4;color:#0b6b62;font-size:12px;font-weight:700}
.dtt-passenger-row label{display:grid;gap:4px;min-width:0;color:#05255f;font-size:12px;font-weight:700}
.dtt-passenger-row label[hidden]{display:none}
.dtt-passenger-row-error{grid-column:1/-1;margin:0;padding:8px 10px;border:1px solid #f3b4b4;border-radius:6px;background:#fff5f5;color:#9b1c1c;font-size:12px;font-weight:700}
.dtt-passenger-row-error p{margin:0}
.dtt-passenger-row-error p+p{margin-top:4px}
.dtt-passenger-row label small{color:#52668a;font-size:12px;font-weight:600}
.dtt-passenger-row input[type=text],.dtt-passenger-row input[type=date],.dtt-passenger-row select{box-sizing:border-box;width:100%;min-width:0;height:40px;padding:0 10px;border:1px solid #cddbea;border-radius:6px;background:#fff;color:#172033;font-size:12px}
.dtt-passenger-row .dtt-passenger-check{display:flex;align-items:center;gap:6px;min-height:40px;font-weight:600}
.dtt-passenger-row .dtt-passenger-check input{width:18px;height:18px;margin:0}
.dtt-passengers-save-row{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;padding:10px 0 2px;background:linear-gradient(rgba(255,255,255,0),#fff 40%)}
.dtt-passengers-edit>summary{padding:8px 0;color:#05255f;font-weight:800;cursor:pointer}
.dtt-passengers-table td,.dtt-passengers-table th{white-space:nowrap}
@media(max-width:1100px){.dtt-passenger-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.dtt-passengers-card.dtt-agent-payment-card{padding:14px 14px 14px}.dtt-passengers-card .dtt-booking-section-heading{padding-right:34px}.dtt-passenger-row{grid-template-columns:minmax(0,1fr);padding:10px}.dtt-passenger-row input[type=text],.dtt-passenger-row input[type=date],.dtt-passenger-row select{height:44px;font-size:16px}.dtt-passenger-row .dtt-passenger-check{min-height:44px}.dtt-passengers-save-row .dtt-button{width:100%;min-height:44px;justify-content:center}.dtt-passengers-actions{flex-direction:column;align-items:stretch}.dtt-passengers-actions .dtt-button{justify-content:center;min-height:44px}body.logged-in .dtt-passengers-table,.dtt-passengers-table{min-width:0}.dtt-passengers-table thead{display:none}.dtt-passengers-table,.dtt-passengers-table tbody,.dtt-passengers-table tr,.dtt-passengers-table td{display:block;width:100%}.dtt-passengers-table tr{padding:8px 0;border-bottom:1px solid #dbe5ef}.dtt-passengers-table td{display:flex;justify-content:space-between;gap:12px;padding:4px 8px;border:0;white-space:normal;text-align:right;overflow-wrap:anywhere}.dtt-passengers-table td::before{content:attr(data-label);flex:0 0 auto;color:#05255f;font-weight:700;text-align:left}}
/* RC64 passport mode: per-passenger "Enter details" or "Passport" choice, passport scan upload, live age on the travel date. */
.dtt-passenger-details{display:contents}
.dtt-passenger-details[hidden],.dtt-passenger-scan[hidden],.dtt-passenger-mode[hidden]{display:none}
.dtt-passenger-mode{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center}
.dtt-passenger-row .dtt-passenger-mode .dtt-passenger-check{min-height:32px}
.dtt-passenger-scan{grid-column:span 3;display:grid;gap:6px;align-content:end;min-width:0}
.dtt-passenger-row input[type=file]{box-sizing:border-box;width:100%;min-width:0;padding:8px 10px;border:1px dashed #9fb4cf;border-radius:6px;background:#f8fbff;color:#172033;font-size:12px}
.dtt-passenger-scan-file{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;font-size:12px}
.dtt-passenger-on-file{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid #bfe8cf;border-radius:999px;background:#eefaf3;color:#0b7a42;font-size:12px;font-weight:700;white-space:nowrap}
.dtt-passenger-scan-view{color:#0a4f9c;font-weight:700}
.dtt-passenger-scan-note{color:#52668a;font-size:12px;font-weight:600}
.dtt-passenger-row{row-gap:24px;padding-bottom:26px}
.dtt-passenger-dob{position:relative}
.dtt-passenger-age{position:absolute;top:100%;left:0;margin-top:3px;color:#0b6b62;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap}
.dtt-passenger-age.is-warning{color:#8a5a00}
@media(max-width:1100px){.dtt-passenger-scan{grid-column:1/-1}}
@media(max-width:640px){.dtt-passenger-row input[type=file]{min-height:44px;font-size:16px}.dtt-passenger-row .dtt-passenger-mode .dtt-passenger-check{min-height:44px}}
/* RC58 F11: Download PDF on catalog detail views, admin catalog cards and editors. */
.dtt-catalog-detail-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.dtt-catalog-detail-head h2{flex:1 1 260px;min-width:0;overflow-wrap:anywhere}
.dtt-catalog-pdf-action{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dtt-catalog-pdf-action svg{width:15px;height:15px;flex:0 0 auto}
.dtt-reference-tour-list .dtt-tour-card-actions>.dtt-tour-card-action-pdf{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--dtt-tour-line,#e5ebf3)}
@media(max-width:640px){.dtt-catalog-detail-head{flex-direction:column;align-items:stretch}.dtt-catalog-detail-head .dtt-catalog-pdf-action{justify-content:center;min-height:44px}.dtt-tour-editor-heading-actions .dtt-editor-pdf-action,.dtt-reference-editor-actions .dtt-editor-pdf-action{justify-content:center}}
/* RC63 M2: phones keep the eight monthly bars side by side and scroll the chart sideways. */
@media(max-width:640px){body.logged-in .dtt-dashboard-overview .dtt-bar-chart{grid-template-columns:repeat(8,minmax(28px,1fr));overflow-x:auto;overscroll-behavior-x:contain}}
/* RC63 M4: at tablet widths the period title takes its own row so Apply and Reset stay with the fields. */
@media(max-width:900px){.dtt-dashboard-kpi-filter-title{flex:1 0 100%;margin-right:0}.dtt-dashboard-kpi-filter select,.dtt-dashboard-kpi-filter input{min-width:120px}}
/* RC63 follow-up: KPI values scale with their card (container units) and wrap after the currency instead of being clipped. */
.dtt-dashboard-booking-kpis .dtt-stat-card{container-type:inline-size}
/* RC63 follow-up: phones show compact bar values (59.4K); the full value stays in the accessible text and the title. */
.dtt-bar-value-short{display:none}
@media(max-width:640px){.dtt-dashboard-overview .dtt-bar-chart{gap:4px;padding-inline:4px}.dtt-dashboard-overview .dtt-bar-track{width:min(44px,100%)}.dtt-dashboard-overview .dtt-bar-item strong{white-space:nowrap}.dtt-dashboard-overview .dtt-bar-value-short{display:inline}.dtt-dashboard-overview .dtt-bar-value-full{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
/* Admin dashboard summary cards: one scrollable row so amounts keep a readable size and never wrap. Cards share the width when they fit, otherwise the row scrolls (snaps per card, slim rounded scrollbar). */
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis,body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis.is-staff{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:10px}
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis .dtt-stat-card{flex:1 0 240px;min-width:240px;padding:12px 14px;scroll-snap-align:start}
body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis .dtt-stat-card strong{font-size:21px;white-space:nowrap;overflow-wrap:normal}
@supports (-moz-appearance:none){body.logged-in .dtt-dashboard-overview .dtt-dashboard-booking-kpis{scrollbar-width:thin;scrollbar-color:#9fb4cf #e8eef7}}
.dtt-dashboard-booking-kpis::-webkit-scrollbar{height:6px}
.dtt-dashboard-booking-kpis::-webkit-scrollbar-track{background:#e8eef7;border-radius:999px}
.dtt-dashboard-booking-kpis::-webkit-scrollbar-thumb{background:#9fb4cf;border-radius:999px}
.dtt-dashboard-booking-kpis::-webkit-scrollbar-thumb:hover{background:#6f8ab0}
.dtt-dashboard-booking-kpis::-webkit-scrollbar-button,.dtt-dashboard-booking-kpis::-webkit-scrollbar-button:single-button{display:none;width:0;height:0}
