/* Aggregated global stylesheet */
@import url('base/_reset.css');
@import url('base/_variables.css');
@import url('layout/main-layout.css');
@import url('components/sidebar.css');
@import url('components/userinfo.css');
@import url('components/table.css');
@import url('components/forms.css');
@import url('components/stats.css');
@import url('components/loading.css');
@import url('components/error-ui.css');
@import url('pages/login.css');
@import url('pages/dashboard.css');
@import url('pages/payments.css');
@import url('pages/bookings.css');
@import url('pages/search.css');
@import url('pages/search-detail.css');
@import url('pages/reservation-details.css');
@import url('pages/profile.css');
@import url('pages/change-password.css');
@import url('pages/itineraire-list.css');
@import url('pages/create-reservation.css');
@import url('pages/booking-search.css');

/* Utility classes */
.u-flex{display:flex;} .u-col{display:flex;flex-direction:column;} .u-center{display:flex;align-items:center;justify-content:center;}
.u-gap-xs{gap:.35rem;} .u-gap-sm{gap:.6rem;} .u-gap{gap:.85rem;} .u-gap-lg{gap:1.25rem;}
.u-text-muted{color:var(--color-text-muted);} .u-muted{color:var(--color-text-muted);} 
.u-scroll-y{overflow-y:auto;} .u-w-full{width:100%;} .u-h-full{height:100%;}
.u-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;padding:1rem;box-shadow:var(--shadow-sm);} 

/* Extended spacing utilities */
.mt-0{margin-top:0!important;} .mt-2xs{margin-top:.2rem!important;} .mt-xs{margin-top:.35rem!important;} .mt-sm{margin-top:.5rem!important;} .mt-md{margin-top:1rem!important;} .mt-lg{margin-top:1.4rem!important;} .mt-xl{margin-top:2rem!important;} .mt-2sm{margin-top:.65rem!important;} .mt-neg-2{margin-top:-.25rem!important;}
.mb-0{margin-bottom:0!important;} .mb-xs{margin-bottom:.35rem!important;} .mb-sm{margin-bottom:.85rem!important;} .mb-md{margin-bottom:1rem!important;} .mb-lg{margin-bottom:1.4rem!important;} .mb-xl{margin-bottom:2rem!important;}
.gap-tight{gap:.6rem!important;} .gap-loose{gap:1.4rem!important;}

/* Width / container helpers */
.container-wide{max-width:1350px;margin:0 auto;padding:0 1.25rem;} 
.page-content-wide{max-width:1420px;margin:0 auto;} 

/* Text sizing */
.text-xxs{font-size:.55rem!important;} .text-xs{font-size:.65rem!important;} .text-sm{font-size:.7rem!important;} .text-base{font-size:.8rem!important;}

/* Padding utilities */
.pad-md{padding:1rem 1.25rem!important;} .pad-md-alt{padding:1.1rem 1.25rem!important;} .pad-sm{padding:.6rem .75rem!important;}

/* Visibility / misc */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;border:0!important;}
.min-w-210{min-width:210px!important;}

/* Badges */
.badge{display:inline-flex;align-items:center;font-weight:600;letter-spacing:.5px;border-radius:18px;font-size:.6rem;padding:.4rem .65rem;line-height:1;white-space:nowrap;}
.badge-accent{background:var(--accent-color,#6366f1);color:#fff;}
.badge-soft{background:var(--surface-200,#f1f5f9);color:var(--text-500,#475569);} 

/* Toggle group / action bars */
.toggle-group{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem;}
.action-bar{margin-top:1rem;display:flex;gap:.75rem;flex-wrap:wrap;}

/* Result / table helpers */
.result-actions.min-w{min-width:210px;}

/* Generic body padding variants */
.card-body.pad-md,.pad-md.card-body{padding:1rem 1.25rem!important;}
.card-body.pad-md-alt,.pad-md-alt.card-body{padding:1.1rem 1.25rem!important;}

/* Generic section header */
.section-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;}
.section-header h2{font-size:.9rem;font-weight:700;letter-spacing:.5px;margin:0;color:var(--color-text);} 
.section-header .subtitle{font-size:.6rem;font-weight:600;letter-spacing:.7px;text-transform:uppercase;color:var(--color-text-muted);} 

/* === Companies Page (Responsive Table + Cards) === */
.page-header{display:flex;align-items:center;justify-content:space-between;margin:0 0 1rem;}
.page-header.wrap{flex-wrap:wrap;gap:.75rem;}
.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;}
.filter-bar.compact{padding:.65rem .85rem;}
.filter-inline{display:flex;align-items:center;flex-wrap:wrap;}
.filter-inline.grow{flex:1;}
.field-group{position:relative;display:flex;align-items:center;}
.field-group.grow{flex:1;}
.input-icon{position:absolute;left:.55rem;font-size:.7rem;color:var(--color-text-muted);}
.input.input-search{padding-left:1.65rem;min-width:220px;}
.server-paging-mini{display:flex;align-items:center;}
.pager-mini{display:flex;align-items:center;}
.mini-indicator{font-size:.65rem;font-weight:600;padding:0 .5rem;}
.btn-icon{background:var(--color-surface);border:1px solid var(--color-border);width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);font-size:.65rem;transition:.25s;}
.btn-icon:hover:not([disabled]){color:var(--accent-color,#6366f1);border-color:var(--accent-color,#6366f1);} 
.btn-icon[disabled]{opacity:.4;cursor:not-allowed;}
.table-responsive{overflow-x:auto;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);} 
.table-modern{width:100%;border-collapse:collapse;font-size:.75rem;}
.table-modern th,.table-modern td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;}
.table-modern th{font-weight:600;background:var(--color-surface-alt,#f8f9fb);cursor:pointer;user-select:none;font-size:.65rem;letter-spacing:.5px;text-transform:uppercase;}
.table-modern tbody tr:hover{background:var(--color-surface-alt,#f5f7fa);} 
.table-modern .empty-row{text-align:center;padding:1.5rem 0;font-style:italic;color:var(--color-text-muted);} 
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.max-320{max-width:320px;}
.cards-list{display:flex;flex-direction:column;gap:.85rem;}
.data-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;padding:.9rem .95rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 2px 4px -2px rgba(0,0,0,.05);} 
.dc-header{border-bottom:1px solid var(--color-border);padding-bottom:.35rem;}
.dc-title{margin:0;font-size:.9rem;font-weight:600;}
.grid-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem .75rem;font-size:.65rem;}
.grid-info .lbl{display:block;font-size:.55rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted);}
.grid-info .val{display:block;font-weight:500;}
.dc-footer{border-top:1px dashed var(--color-border);padding-top:.45rem;color:var(--color-text-muted);} 
.empty-card{text-align:center;padding:1.2rem;border:1px dashed var(--color-border);border-radius:14px;font-size:.7rem;color:var(--color-text-muted);} 

/* === Responsive Visibility === */
@media (max-width: 820px){
	.hide-mobile{display:none !important;}
	.show-mobile{display:block !important;}
	/* NOTE: Previously we hid all .table-responsive on mobile which also hid
	   the responsive data-table wrapper containing the fallback card layout (.data-cards).
	   That caused the "Réservations Récentes" panel to appear vide (empty) sur mobile.
	   We now keep it visible and offer an opt-in utility (.hide-mobile-table) if a specific
	   table wrapper truly needs to be hidden. */
	.hide-mobile-table{display:none !important;}
	/* Ensure data table wrapper stays visible so inner .data-cards rules (in table.css) can activate */
	.data-table-wrapper.table-responsive{display:block !important;overflow:visible;}
}
@media (min-width: 821px){
	.show-mobile{display:none !important;}
}
@media (max-width:520px){
	.hide-xs{display:none !important;}
	.input.input-search{min-width:160px;}
	.data-card{padding:.75rem .8rem;}
}

/* === Stepper (centralized) === */
.stepper.wizard{background:var(--color-surface);border:1px solid var(--color-border);padding:.7rem .9rem;border-radius:18px;box-shadow:var(--shadow-sm);overflow-x:auto;}
.stepper-list{display:flex;align-items:stretch;gap:.8rem;list-style:none;margin:0;padding:0;}
.stepper-list.responsive{flex-wrap:nowrap;}
.stepper-item{position:relative;display:flex;flex-direction:column;align-items:center;min-width:72px;flex:1 1 0;text-align:center;}
.stepper-marker{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;background:#f1f5f9;color:#334155;border:2px solid #e2e8f0;transition:.25s;}
.stepper-item.active .stepper-marker,.stepper-item.current .stepper-marker{background:#c7d2fe;color:#1e293b;border-color:#818cf8;box-shadow:0 4px 12px -2px rgba(129,140,248,.45);} 
.stepper-item.completed .stepper-marker{background:#d1fae5;color:#065f46;border-color:#6ee7b7;}
.stepper-label{margin-top:.35rem;font-size:.55rem;font-weight:600;letter-spacing:.5px;color:var(--color-text-muted);text-transform:uppercase;}
.stepper-item.current .stepper-label{color:var(--color-text);}
@media (max-width:980px){
	.stepper-list.responsive{flex-wrap:wrap;}
	.stepper-item{flex:0 1 calc(33.33% - .8rem);}
}
@media (max-width:640px){
	.stepper-list.responsive{flex-direction:column;}
	.stepper-item{flex:1 1 auto;flex-direction:row;align-items:center;gap:.75rem;min-width:0;}
	.stepper-label{text-align:left;font-size:.6rem;}
}

/* Step panels & scrolling */
.step-content{display:flex;flex-direction:column;gap:1.1rem;margin-top:1rem;}
.step-panel{position:relative;}
.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.6),var(--color-bg,#fff));padding:.85rem .25rem;margin-top:1.2rem;backdrop-filter:blur(6px);display:flex;align-items:center;gap:.6rem;border-top:1px solid var(--color-border);} 
.nav-btn{min-width:130px;justify-content:center;}
@media (max-width:640px){
	.nav-btn{min-width:0;font-size:.65rem;padding:.55rem .7rem;}
	.sticky-actions{padding:.65rem .25rem;}
}

/* Utility spacing shortcuts */
.gap-2xs{gap:.25rem;}
.gap-xs{gap:.5rem;}
.gap-sm{gap:.75rem;}
.gap-md{gap:1rem;}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
.grow{flex:1;}
.mb-sm{margin-bottom:.85rem;}
.m-0{margin:0;}
.text-xs{font-size:.65rem;}
.muted{color:var(--color-text-muted);}

/* Generic buttons (if not already) */
.btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:600;padding:.55rem .85rem;border:1px solid var(--color-border);border-radius:10px;cursor:pointer;background:var(--color-surface);color:var(--color-text);transition:.25s;text-decoration:none;}
.btn:hover{background:var(--color-surface-alt,#f5f7fa);} 
.btn-primary{background:var(--accent-color,#6366f1);color:#fff;border-color:var(--accent-color,#6366f1);} 
.btn-primary:hover{background:#5459e6;}
.btn-secondary{background:#e2e8f0;color:#334155;border-color:#cbd5e1;}
.btn-secondary:hover{background:#cbd5e1;}
.btn-accent{background:#0ea5e9;color:#fff;border-color:#0ea5e9;}
.btn-accent:hover{background:#0284c7;}
.btn-xs{font-size:.55rem;padding:.35rem .5rem;border-radius:8px;}

/* Inputs */
.input{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;padding:.55rem .65rem;font-size:.7rem;width:100%;}
.input-sm{padding:.4rem .5rem;font-size:.6rem;border-radius:8px;}
.input:focus{outline:none;border-color:var(--accent-color,#6366f1);box-shadow:0 0 0 2px rgba(99,102,241,.15);} 

/* Light input variant (uniform white background + dark text) */
.light-input{background:#fff!important;color:#1e293b!important;border:1px solid var(--color-border,#e2e8f0)!important;}
.light-input:focus{background:#fff!important;color:#0f172a!important;}
/* Readonly styling */
.readonly-input[readonly]{background:#f1f5f9!important;color:#475569!important;}


