/* Visit Tunis brand theme: derived from img/visit-tunisia-logo.png */
:root {
    --visit-red: #e3061a;
    --visit-red-dark: #bd0012;
    --visit-red-soft: #fff0f2;
    --visit-navy: #17284d;
    --visit-navy-dark: #0f1c38;
    --visit-navy-soft: #eef2f8;
    --vz-primary: var(--visit-red);
    --vz-primary-rgb: 227, 6, 26;
    --vz-info: var(--visit-navy);
    --vz-info-rgb: 23, 40, 77;
    --vz-link-color: var(--visit-red);
    --vz-link-hover-color: var(--visit-red-dark);
}

a { color: var(--visit-red); }
a:hover { color: var(--visit-red-dark); }
.text-primary { color: var(--visit-red) !important; }
.text-info { color: var(--visit-navy) !important; }
.bg-primary { background-color: var(--visit-red) !important; }
.bg-info { background-color: var(--visit-navy) !important; }
.border-primary { border-color: var(--visit-red) !important; }

.btn-primary,
.btn-danger {
    --vz-btn-color: #fff;
    --vz-btn-bg: var(--visit-red);
    --vz-btn-border-color: var(--visit-red);
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: var(--visit-red-dark);
    --vz-btn-hover-border-color: var(--visit-red-dark);
    --vz-btn-active-bg: var(--visit-red-dark);
    --vz-btn-active-border-color: var(--visit-red-dark);
}

.btn-info {
    --vz-btn-color: #fff;
    --vz-btn-bg: var(--visit-navy);
    --vz-btn-border-color: var(--visit-navy);
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: var(--visit-navy-dark);
    --vz-btn-hover-border-color: var(--visit-navy-dark);
}

.btn-soft-primary {
    --vz-btn-color: var(--visit-red);
    --vz-btn-bg: var(--visit-red-soft);
    --vz-btn-border-color: transparent;
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: var(--visit-red);
    --vz-btn-hover-border-color: var(--visit-red);
}

.btn-soft-danger {
    --vz-btn-color: var(--visit-red);
    --vz-btn-bg: var(--visit-red-soft);
    --vz-btn-border-color: transparent;
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: var(--visit-red);
    --vz-btn-hover-border-color: var(--visit-red);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(227, 6, 26, .55);
    box-shadow: 0 0 0 .2rem rgba(227, 6, 26, .12);
}

#page-topbar,
.navbar-header { background: var(--visit-navy) !important; }
.navbar-header .header-item,
.navbar-header .user-name-text,
.navbar-header .user-name-sub-text { color: #fff !important; }

.app-menu,
.navbar-menu,
.navbar-brand-box { background: var(--visit-navy) !important; border-color: rgba(255, 255, 255, .08) !important; }
.navbar-menu .navbar-nav .nav-link,
.navbar-menu .navbar-nav .nav-link i,
.navbar-menu .navbar-nav .menu-title,
.navbar-menu .navbar-nav .menu-title span { color: rgba(255, 255, 255, .72) !important; }
.navbar-menu .navbar-nav .nav-link:hover { color: #fff !important; }
.navbar-menu .navbar-nav .nav-link.active {
    color: #fff !important;
    background: var(--visit-red);
    border-radius: .5rem;
    box-shadow: 0 6px 18px rgba(227, 6, 26, .23);
}
.navbar-menu .navbar-nav .nav-link.active i { color: #fff !important; }
.navbar-brand-box .logo img { max-width: 112px; object-fit: contain; }

.auth-page-wrapper {
    background:
        radial-gradient(circle at 10% 15%, rgba(227, 6, 26, .15), transparent 32%),
        linear-gradient(135deg, #f8f9fc 0%, #eef2f8 100%);
}
.auth-page-wrapper > .bg-overlay {
    background: linear-gradient(135deg, rgba(23, 40, 77, .04), rgba(227, 6, 26, .03));
    opacity: 1;
}
.auth-card { border: 0; border-radius: 1rem; box-shadow: 0 24px 65px rgba(23, 40, 77, .14); }
.auth-one-bg {
    background:
        linear-gradient(150deg, rgba(23, 40, 77, .98), rgba(23, 40, 77, .88) 58%, rgba(227, 6, 26, .88)),
        url('../images/auth-one-bg.jpg') center/cover;
}
.auth-one-bg .bg-overlay { background: none; }
.auth-brand {
    width: fit-content;
    padding: .65rem .85rem;
    background: #fff;
    border-radius: .75rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
}
.auth-logo { width: 170px; max-width: 100%; height: auto; display: block; }
.auth-kicker {
    display: inline-block;
    padding: .35rem .7rem;
    color: #fff;
    background: var(--visit-red);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.text-white-75 { color: rgba(255, 255, 255, .75); }
.auth-footer { background: transparent !important; }
.password-rules { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--visit-navy); background: var(--visit-navy-soft); font-size: .78rem; }
.password-rules i { color: var(--visit-red); }

.destination-card { border: 0; box-shadow: 0 8px 28px rgba(23, 40, 77, .07); }
.destination-search { width: min(100%, 320px); }
.destination-toolbar { justify-content: flex-end; }
.destination-search i { position: absolute; z-index: 2; left: .9rem; top: 50%; transform: translateY(-50%); color: #878a99; }
.destination-search .form-control { padding-left: 2.5rem; border-radius: 999px; }
.destination-table-wrap { width: 100%; min-width: 0; overflow: visible; }
.destination-table-wrap .dt-container,
.destination-table-wrap .dt-layout-row,
.destination-table-wrap .dt-layout-cell { min-width: 0; }
.destination-table-wrap table.dataTable { width: 100% !important; table-layout: fixed; }
.destination-cell { min-width: 0; display: flex; align-items: center; gap: .75rem; }
.destination-cell > div { min-width: 0; }
.destination-cell h6 { max-width: 100%; color: var(--visit-navy); white-space: normal; overflow-wrap: anywhere; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.destination-thumb { width: 58px; height: 50px; flex: 0 0 58px; border-radius: .65rem; object-fit: cover; box-shadow: 0 3px 10px rgba(23, 40, 77, .12); }
.destination-description { min-width: 0; max-width: none; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: #64708a; white-space: normal; overflow-wrap: anywhere; }
.coordinate-link { color: var(--visit-navy); white-space: normal; overflow-wrap: anywhere; font-weight: 500; }
.coordinate-link:hover { color: var(--visit-red); }
#destinationTable thead th { color: var(--visit-navy); background: var(--visit-navy-soft); border-bottom: 0; font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
#destinationTable tbody td { padding-top: 1rem; padding-bottom: 1rem; white-space: normal; vertical-align: middle; }
#destinationTable tbody td.text-nowrap { white-space: nowrap; }
.destination-table-wrap .dt-length,
.destination-table-wrap .dt-info,
.destination-table-wrap .dt-paging { margin-top: .65rem; margin-bottom: .35rem; }
.destination-table-wrap .dt-paging .pagination { flex-wrap: wrap; }
.destination-table-wrap table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before { background-color: var(--visit-red); }
.destination-table-wrap table.dataTable > tbody > tr.child ul.dtr-details { width: 100%; }

.destination-modal .modal-dialog { max-width: 1120px; }
.destination-modal .modal-content { border: 0; border-radius: .75rem; overflow: hidden; box-shadow: 0 28px 80px rgba(15, 28, 56, .28); }
.destination-modal .modal-dialog-scrollable .modal-content > form { display: flex; flex-direction: column; min-height: 0; max-height: 100%; }
.destination-modal .modal-dialog-scrollable .modal-body { min-height: 0; overflow-y: auto; }
.destination-modal .modal-header { padding: 1.15rem 1.4rem; border-bottom: 1px solid rgba(227, 6, 26, .12); background: #fffafa; }
.destination-modal .modal-title { color: var(--visit-navy); font-weight: 700; }
.destination-modal-kicker { display: block; color: var(--visit-red); font-size: .68rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.destination-modal .modal-body { padding: 1.2rem; background: #fff; }
.destination-modal .modal-footer { padding: 1rem 1.4rem; border-top: 1px solid rgba(227, 6, 26, .12); background: #fffafa; }
.destination-form-section { padding: 1rem; border: 1px solid rgba(227, 6, 26, .18); border-radius: .55rem; background: #fff; }
.destination-section-heading { display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; }
.destination-section-heading h6 { margin: 0 0 .1rem; color: var(--visit-navy); font-weight: 750; }
.destination-section-heading p { margin: 0; color: #929bb0; font-size: .77rem; }
.destination-section-icon { display: inline-grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; color: var(--visit-red); background: var(--visit-red-soft); border-radius: .55rem; font-size: 1rem; }
.destination-form-section .form-label { margin-bottom: .4rem; color: #33405d; font-size: .8rem; font-weight: 650; }
.destination-form-section .form-control { min-height: 42px; border-color: #ead4d7; border-radius: .55rem; }
.destination-form-section .form-control::placeholder { color: #adb2bc; }
.destination-quill { background: #fff; }
.destination-quill .ql-editor { min-height: 92px; color: #33405d; font-size: .84rem; line-height: 1.55; }
.destination-quill-lg .ql-editor { min-height: 155px; }
.destination-form-section .ql-toolbar.ql-snow { padding: 5px 7px; border-color: #ead4d7; border-radius: .55rem .55rem 0 0; background: #fffafa; }
.destination-form-section .ql-container.ql-snow { border-color: #ead4d7; border-radius: 0 0 .55rem .55rem; }
.destination-form-section .ql-snow.ql-toolbar button,
.destination-form-section .ql-snow .ql-toolbar button { width: 24px; height: 24px; padding: 4px; }
.destination-form-section .ql-snow .ql-picker-label { color: #536079; }
.destination-form-section .ql-snow .ql-stroke { stroke: #536079; }
.destination-form-section .ql-snow .ql-fill { fill: #536079; }
.destination-form-section .ql-snow.ql-toolbar button:hover .ql-stroke,
.destination-form-section .ql-snow.ql-toolbar button.ql-active .ql-stroke { stroke: var(--visit-red); }
.destination-form-section .ql-snow.ql-toolbar button:hover .ql-fill,
.destination-form-section .ql-snow.ql-toolbar button.ql-active .ql-fill { fill: var(--visit-red); }
.destination-edit-card,
.destination-gallery-card { border: 0; box-shadow: 0 8px 28px rgba(23, 40, 77, .07); }
.destination-edit-heading-image { width: 62px; height: 52px; flex: 0 0 62px; object-fit: cover; border-radius: .65rem; box-shadow: 0 3px 10px rgba(23, 40, 77, .12); }
.destination-current-thumbnail { width: 116px; height: 82px; object-fit: cover; border-radius: .65rem; border: 3px solid #fff; box-shadow: 0 4px 16px rgba(23, 40, 77, .14); }
.destination-gallery-item { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: .7rem; background: var(--visit-navy-soft); box-shadow: 0 4px 14px rgba(23, 40, 77, .1); }
.destination-gallery-item > img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease, opacity .25s ease; }
.destination-gallery-item:hover > img { transform: scale(1.035); }
.destination-gallery-item > .btn { position: absolute; z-index: 2; top: .55rem; right: .55rem; width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border-radius: 50%; }
.gallery-removed-label { display: none; position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); width: max-content; max-width: calc(100% - 1rem); padding: .4rem .65rem; color: #fff; background: rgba(23, 40, 77, .88); border-radius: .4rem; font-size: .75rem; font-weight: 650; }
.destination-gallery-item.is-removed > img { opacity: .22; filter: grayscale(1); }
.destination-gallery-item.is-removed .gallery-removed-label { display: block; }
.destination-gallery-upload { padding: 1rem; border: 1px dashed rgba(227, 6, 26, .32); border-radius: .7rem; background: #fffafa; }
.destination-gallery-empty { padding: 2.4rem 1rem; text-align: center; color: #929bb0; border: 1px dashed #d9deea; border-radius: .7rem; }
.destination-gallery-empty i { display: block; margin-bottom: .45rem; font-size: 2rem; color: var(--visit-red); }
.destination-gallery-empty p { margin: 0; }
.new-gallery-preview-item { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: .5rem; }
.new-gallery-preview-item img { width: 100%; height: 100%; object-fit: cover; }
.new-gallery-preview-item span { position: absolute; right: .35rem; bottom: .35rem; padding: .15rem .4rem; color: #fff; background: rgba(23, 40, 77, .82); border-radius: .3rem; font-size: .65rem; font-weight: 700; }
.content-feature-switch { min-height: 42px; display: flex; align-items: center; gap: .35rem; padding: .65rem .8rem .65rem 2.9rem; border: 1px solid #ead4d7; border-radius: .55rem; background: #fffafa; }
.content-feature-switch .form-check-input { margin-top: 0; }
.content-feature-switch .form-check-label { color: #33405d; font-size: .8rem; font-weight: 650; }
.content-location { display: flex; align-items: flex-start; gap: .35rem; color: #33405d; overflow-wrap: anywhere; }
.content-location i { flex: 0 0 auto; color: var(--visit-red); }
.content-permission-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .55rem; }
.content-permission-option { margin: 0; padding: .65rem .75rem .65rem 2.1rem; border: 1px solid #ead4d7; border-radius: .55rem; background: #fffafa; color: #33405d; font-size: .8rem; font-weight: 650; }
.content-permission-option .form-check-input:checked { background-color: var(--visit-red); border-color: var(--visit-red); }
.guide-rating { color: #f6a700; white-space: nowrap; letter-spacing: .08em; font-size: 1rem; }
.profile-settings-photo { width: 148px; height: 148px; object-fit: cover; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 8px 28px rgba(23,40,77,.18); }
.security-requirements { padding: 1rem; border-radius: .65rem; background: var(--visit-navy-soft); }
.security-requirements h6 { color: var(--visit-navy); }
.security-requirements ul { padding-left: 1.1rem; }
#notificationDropdown .notification-item { padding: .75rem; }
#notificationDropdown .notification-item:hover { background: var(--visit-red-soft); }
.search-result-card { border: 1px solid #edf0f6; box-shadow: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.search-result-card:hover { transform: translateY(-2px); border-color: rgba(227,6,26,.25); box-shadow: 0 8px 24px rgba(23,40,77,.08); }
.min-w-0 { min-width: 0; }
.new-gallery-preview-item span { position: absolute; right: .35rem; bottom: .35rem; padding: .2rem .45rem; color: #fff; background: var(--visit-red); border-radius: 999px; font-size: .65rem; font-weight: 700; }

.page-link.active,
.active > .page-link { background-color: var(--visit-red); border-color: var(--visit-red); }
.spinner-border.text-primary { color: var(--visit-red) !important; }
#back-to-top { background: var(--visit-red); border-color: var(--visit-red); }

@media (max-width: 991.98px) {
    .auth-one-bg { min-height: 340px; }
    .auth-page-content { padding-top: 0 !important; }
}

@media (max-width: 575.98px) {
    .auth-page-wrapper { padding: 1rem !important; }
    .auth-one-bg { min-height: 300px; }
    .destination-search { width: 100%; }
    .destination-toolbar { width: 100%; justify-content: stretch; }
    .destination-toolbar > .btn { width: 100%; }
    .destination-modal .modal-body { padding: .8rem; }
    .destination-form-section { padding: .8rem; }
}
