:root {
    --admin-ink: #173042;
    --admin-muted: #6d7f8b;
    --admin-teal: #0f9688;
    --admin-teal-dark: #08786e;
    --admin-orange: #f39a47;
    --admin-canvas: #f3f7f7;
    --admin-border: #dfebea;
    --admin-white: #fff;
    --admin-sidebar: #102f39;
    --admin-sidebar-soft: #163e48;
    --admin-shadow: 0 12px 35px rgba(30, 68, 76, .08);
    --admin-radius: 18px;
}

* { box-sizing: border-box; }
body { color: var(--admin-ink); font-family: Inter, "Segoe UI", Arial, sans-serif; }
a { text-decoration: none; }

.admin-body { background: var(--admin-canvas); min-height: 100vh; margin: 0; }
.admin-sidebar {
    background:
        radial-gradient(circle at 18% 4%, rgba(29, 185, 166, .19), transparent 25%),
        linear-gradient(180deg, #123742 0%, #0c2933 100%);
    bottom: 0; color: #fff; display: flex; flex-direction: column; left: 0; overflow-y: auto;
    position: fixed; top: 0; width: 268px; z-index: 1040;
}
.admin-brand {
    align-items: center; color: #fff; display: flex; gap: 12px; min-height: 88px;
    padding: 20px 24px;
}
.admin-brand:hover { color: #fff; }
.admin-brand-mark {
    align-items: center; background: linear-gradient(135deg, #1bc2af, #0e9083); border-radius: 14px;
    box-shadow: 0 9px 20px rgba(4, 30, 34, .28); display: inline-flex; font-size: 1.4rem;
    height: 46px; justify-content: center; width: 46px;
}
.admin-brand strong { display: block; font-size: 1.02rem; letter-spacing: .01em; }
.admin-brand small { color: #9ebbc1; display: block; font-size: .72rem; margin-top: 2px; text-transform: uppercase; }
.admin-nav { flex: 1; padding: 8px 15px 25px; }
.admin-nav-label {
    color: #7899a0; font-size: .68rem; font-weight: 800; letter-spacing: .13em;
    margin: 25px 13px 8px; text-transform: uppercase;
}
.admin-nav a {
    align-items: center; border-radius: 11px; color: #bcd0d4; display: flex; font-size: .9rem;
    font-weight: 600; gap: 13px; margin: 3px 0; min-height: 44px; padding: 10px 13px;
    transition: .18s ease;
}
.admin-nav a i { color: #8eb2b6; font-size: 1.04rem; width: 20px; }
.admin-nav a:hover { background: rgba(255,255,255,.06); color: #fff; transform: translateX(2px); }
.admin-nav a.active { background: rgba(22, 185, 166, .16); color: #fff; }
.admin-nav a.active i { color: #3cdbc8; }
.nav-count {
    background: #ef7d71; border-radius: 999px; color: #fff; font-size: .67rem; line-height: 1;
    margin-left: auto; min-width: 20px; padding: 5px 6px; text-align: center;
}
.admin-sidebar-footer { border-top: 1px solid rgba(255,255,255,.08); margin: 0 15px; padding: 16px 0 20px; }
.admin-sidebar-footer a { color: #9db8be; display: flex; font-size: .84rem; gap: 11px; padding: 8px 13px; }
.admin-sidebar-footer a:hover { color: #fff; }
.admin-main { margin-left: 268px; min-height: 100vh; }
.admin-topbar {
    align-items: center; background: rgba(255,255,255,.93); border-bottom: 1px solid var(--admin-border);
    display: flex; height: 88px; justify-content: space-between; padding: 0 34px;
    position: sticky; top: 0; backdrop-filter: blur(15px); z-index: 1020;
}
.admin-topbar-title span { color: var(--admin-teal); display: block; font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.admin-topbar-title h1 { font-size: 1.33rem; font-weight: 750; margin: 3px 0 0; }
.admin-user-button {
    align-items: center; background: transparent; border: 0; color: var(--admin-ink); display: flex;
    gap: 10px; padding: 6px;
}
.admin-avatar {
    align-items: center; background: linear-gradient(135deg, var(--admin-teal), #2ac4b4);
    border-radius: 13px; color: #fff; display: inline-flex; font-weight: 800; height: 42px;
    justify-content: center; width: 42px;
}
.admin-user-copy { line-height: 1.15; min-width: 105px; text-align: left; }
.admin-user-copy strong { display: block; font-size: .85rem; }
.admin-user-copy small { color: var(--admin-muted); display: block; font-size: .7rem; margin-top: 4px; text-transform: capitalize; }
.admin-user-button > i { color: #8ca0a7; font-size: .7rem; }
.admin-content { margin: 0 auto; max-width: 1700px; padding: 30px 34px 55px; }
.icon-button {
    align-items: center; background: #eef6f5; border: 0; border-radius: 10px; color: var(--admin-teal);
    display: inline-flex; font-size: 1.35rem; height: 40px; justify-content: center; width: 40px;
}
.admin-overlay { display: none; }

.admin-alert { align-items: flex-start; border: 0; border-radius: 13px; display: flex; gap: 10px; padding: 13px 16px; }
.admin-panel {
    background: var(--admin-white); border: 1px solid rgba(210, 226, 224, .8); border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow); overflow: hidden;
}
.admin-panel-header {
    align-items: center; border-bottom: 1px solid #eaf1f0; display: flex; gap: 16px;
    justify-content: space-between; padding: 20px 22px;
}
.admin-panel-title { font-size: 1rem; font-weight: 750; margin: 0; }
.admin-panel-subtitle { color: var(--admin-muted); font-size: .78rem; margin: 4px 0 0; }
.admin-panel-body { padding: 24px; }
.admin-primary-btn {
    align-items: center; background: linear-gradient(135deg, var(--admin-teal), #0b8478);
    border: 0; border-radius: 10px; box-shadow: 0 7px 15px rgba(15, 150, 136, .16);
    color: #fff; display: inline-flex; font-size: .86rem; font-weight: 700; gap: 8px;
    justify-content: center; min-height: 42px; padding: 9px 16px;
}
.admin-primary-btn:hover, .admin-primary-btn:focus { background: var(--admin-teal-dark); color: #fff; transform: translateY(-1px); }
.admin-secondary-btn {
    align-items: center; background: #edf6f5; border: 0; border-radius: 10px; color: #27645f;
    display: inline-flex; font-size: .83rem; font-weight: 700; gap: 7px; min-height: 40px; padding: 8px 14px;
}
.admin-secondary-btn:hover { background: #dfefed; color: #174d48; }
.admin-danger-btn { background: #fff0ee; border: 0; border-radius: 9px; color: #c55045; }
.admin-danger-btn:hover { background: #fee2df; color: #a73930; }
.admin-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; margin-bottom: 20px; }
.admin-toolbar-form { align-items: center; display: flex; flex: 1; flex-wrap: wrap; gap: 9px; max-width: 740px; }
.admin-search { min-width: 230px; position: relative; }
.admin-search i { color: #8da09f; left: 13px; position: absolute; top: 50%; transform: translateY(-50%); }
.admin-search input { padding-left: 38px; }
.form-control, .form-select {
    border-color: #d9e7e5; border-radius: 10px; color: var(--admin-ink); font-size: .87rem;
    min-height: 42px; padding: .55rem .8rem;
}
textarea.form-control { min-height: 120px; }
.form-control:focus, .form-select:focus {
    border-color: #4dc5b7; box-shadow: 0 0 0 .22rem rgba(15, 150, 136, .11);
}
.form-label { color: #38535c; font-size: .78rem; font-weight: 750; margin-bottom: 7px; }
.form-hint { color: #829298; font-size: .72rem; margin-top: 6px; }
.form-check-input:checked { background-color: var(--admin-teal); border-color: var(--admin-teal); }
.admin-form-section + .admin-form-section { border-top: 1px solid #edf2f1; margin-top: 28px; padding-top: 27px; }
.admin-form-section h3 { font-size: .94rem; font-weight: 750; margin: 0 0 18px; }
.admin-form-actions {
    align-items: center; background: #f7faf9; border-top: 1px solid #e7efee; display: flex;
    gap: 9px; justify-content: flex-end; margin: 30px -24px -24px; padding: 17px 24px;
}
.image-preview {
    background: #eef5f4; border: 1px dashed #c9dcda; border-radius: 12px; display: block;
    height: 145px; margin-bottom: 10px; object-fit: cover; width: 100%;
}
.image-preview.placeholder { align-items: center; color: #93aaa8; display: flex; font-size: 2rem; justify-content: center; }
.form-switch-card {
    align-items: center; background: #f7faf9; border: 1px solid #e4eeed; border-radius: 11px;
    display: flex; gap: 10px; justify-content: space-between; min-height: 61px; padding: 11px 14px;
}
.form-switch-card label { cursor: pointer; margin: 0; }
.form-switch-card strong { display: block; font-size: .8rem; }
.form-switch-card span { color: #849399; display: block; font-size: .69rem; margin-top: 2px; }
.form-switch-card .form-check { margin: 0; min-height: 0; }

.admin-table { margin: 0; vertical-align: middle; }
.admin-table thead th {
    background: #f6f9f9; border-bottom: 1px solid #e5eeed; color: #71868c; font-size: .67rem;
    font-weight: 800; letter-spacing: .065em; padding: 13px 18px; text-transform: uppercase; white-space: nowrap;
}
.admin-table tbody td { border-color: #edf3f2; font-size: .82rem; padding: 14px 18px; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:hover { background: #fbfdfd; }
.table-title { align-items: center; display: flex; gap: 11px; }
.table-title img {
    background: #eef5f4; border-radius: 10px; height: 44px; object-fit: cover; width: 52px;
}
.table-title .thumb-icon {
    align-items: center; background: #e8f4f2; border-radius: 10px; color: var(--admin-teal);
    display: inline-flex; font-size: 1rem; height: 44px; justify-content: center; width: 52px;
}
.table-title strong { display: block; font-size: .83rem; }
.table-title small { color: #8a9a9f; display: block; font-size: .69rem; margin-top: 3px; }
.status-badge {
    align-items: center; border-radius: 999px; display: inline-flex; font-size: .67rem; font-weight: 750;
    gap: 5px; padding: 5px 9px; text-transform: capitalize; white-space: nowrap;
}
.status-badge::before { background: currentColor; border-radius: 50%; content: ""; height: 5px; width: 5px; }
.status-active, .status-published, .status-resolved, .status-contacted { background: #e4f7f2; color: #148275; }
.status-inactive, .status-draft, .status-closed { background: #edf1f1; color: #728489; }
.status-new { background: #fff1df; color: #bc7129; }
.status-in-progress, .status-follow-up { background: #e7f0ff; color: #4877bc; }
.status-qualified { background: #eee8ff; color: #7456b5; }
.status-converted { background: #e2f7ea; color: #21834d; }
.table-actions { align-items: center; display: flex; gap: 5px; justify-content: flex-end; }
.table-action {
    align-items: center; background: #f0f6f5; border: 0; border-radius: 8px; color: #557078;
    display: inline-flex; height: 34px; justify-content: center; transition: .15s ease; width: 34px;
}
.table-action:hover { background: #dff0ee; color: var(--admin-teal-dark); }
.table-action.danger:hover { background: #fde9e6; color: #c64d42; }
.empty-state { color: #829297; padding: 55px 25px; text-align: center; }
.empty-state i { color: #b4cdca; display: block; font-size: 2.5rem; margin-bottom: 12px; }
.empty-state h3 { color: var(--admin-ink); font-size: 1rem; }
.empty-state p { font-size: .8rem; margin: 6px 0 16px; }
.pagination-wrap { align-items: center; border-top: 1px solid #eaf1f0; display: flex; justify-content: space-between; padding: 16px 20px; }
.pagination { margin: 0; }
.page-link { border: 0; border-radius: 8px !important; color: #537178; font-size: .78rem; margin: 0 2px; }
.active > .page-link { background: var(--admin-teal); }

.stats-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 22px; }
.stat-card {
    background: #fff; border: 1px solid rgba(215, 229, 227, .9); border-radius: 17px; box-shadow: var(--admin-shadow);
    display: flex; gap: 15px; padding: 20px;
}
.stat-icon {
    align-items: center; background: #e4f5f2; border-radius: 14px; color: var(--admin-teal); display: inline-flex;
    flex: 0 0 50px; font-size: 1.3rem; height: 50px; justify-content: center;
}
.stat-icon.blue { background: #e8f1ff; color: #4a7fc8; }
.stat-icon.amber { background: #fff2df; color: #c37a2f; }
.stat-icon.rose { background: #ffebe8; color: #c85d54; }
.stat-copy small { color: #7c8f94; display: block; font-size: .72rem; font-weight: 650; }
.stat-copy strong { display: block; font-size: 1.55rem; margin-top: 2px; }
.dashboard-grid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .8fr); }
.dashboard-stack { display: grid; gap: 20px; }
.mini-list { list-style: none; margin: 0; padding: 0; }
.mini-list li {
    align-items: center; border-bottom: 1px solid #edf2f1; display: flex; gap: 12px; padding: 13px 0;
}
.mini-list li:first-child { padding-top: 0; }
.mini-list li:last-child { border: 0; padding-bottom: 0; }
.mini-icon {
    align-items: center; background: #eaf5f3; border-radius: 10px; color: var(--admin-teal);
    display: inline-flex; flex: 0 0 38px; height: 38px; justify-content: center;
}
.mini-list-content { min-width: 0; }
.mini-list-content strong { display: block; font-size: .79rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-list-content small { color: #84959a; display: block; font-size: .68rem; margin-top: 3px; }
.mini-list .status-badge { margin-left: auto; }
.welcome-banner {
    background:
      radial-gradient(circle at 85% 15%, rgba(255,255,255,.22), transparent 22%),
      linear-gradient(130deg, #0e988a, #126d73);
    border-radius: 18px; color: #fff; margin-bottom: 22px; overflow: hidden; padding: 24px 28px; position: relative;
}
.welcome-banner::after {
    border: 22px solid rgba(255,255,255,.08); border-radius: 50%; content: ""; height: 145px;
    position: absolute; right: -28px; top: -47px; width: 145px;
}
.welcome-banner small { color: #b9ece5; display: block; font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.welcome-banner h2 { font-size: 1.35rem; margin: 5px 0 5px; }
.welcome-banner p { color: #d2f0ec; font-size: .8rem; margin: 0; max-width: 620px; }
.subscriber-callout {
    align-items: center; background: #fff8ed; border: 1px solid #f4e1c7; border-radius: 13px; display: flex;
    gap: 12px; padding: 15px;
}
.subscriber-callout i { color: #c4792d; font-size: 1.35rem; }
.subscriber-callout strong { display: block; font-size: .86rem; }
.subscriber-callout span { color: #89745c; display: block; font-size: .71rem; }

.detail-list { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-item { border-bottom: 1px solid #edf2f1; padding: 14px 0; }
.detail-item:nth-child(odd) { padding-right: 20px; }
.detail-item label { color: #7c8f95; display: block; font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.detail-item p { font-size: .84rem; margin: 4px 0 0; }
.message-box { background: #f7faf9; border-left: 3px solid var(--admin-teal); border-radius: 0 11px 11px 0; font-size: .84rem; line-height: 1.7; padding: 16px; white-space: pre-line; }
.gallery-admin-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 22px; }
.gallery-admin-card { border: 1px solid #e3edec; border-radius: 14px; overflow: hidden; }
.gallery-admin-image { aspect-ratio: 4 / 3; background: #edf4f3; overflow: hidden; position: relative; }
.gallery-admin-image img { height: 100%; object-fit: cover; transition: transform .25s ease; width: 100%; }
.gallery-admin-card:hover .gallery-admin-image img { transform: scale(1.035); }
.gallery-admin-image .status-badge { position: absolute; right: 9px; top: 9px; }
.gallery-admin-copy { align-items: center; display: flex; gap: 10px; justify-content: space-between; padding: 12px; }
.gallery-admin-copy > div:first-child { min-width: 0; }
.gallery-admin-copy strong { display: block; font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-admin-copy small { color: #819297; display: block; font-size: .67rem; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.auth-body {
    background:
      radial-gradient(circle at 12% 10%, rgba(29, 189, 170, .15), transparent 26%),
      radial-gradient(circle at 91% 89%, rgba(244, 163, 84, .13), transparent 27%),
      #edf6f5;
    min-height: 100vh; overflow-x: hidden; position: relative;
}
.auth-shell { align-items: center; display: flex; min-height: 100vh; padding: 35px; position: relative; z-index: 2; }
.auth-orb { border: 1px solid rgba(15, 150, 136, .16); border-radius: 50%; position: fixed; }
.auth-orb-one { height: 250px; left: -100px; top: -80px; width: 250px; }
.auth-orb-two { bottom: -150px; height: 380px; right: -130px; width: 380px; }
.login-card {
    background: #fff; border-radius: 26px; box-shadow: 0 30px 80px rgba(25, 74, 77, .15);
    display: grid; grid-template-columns: 1.08fr .92fr; margin: auto; max-width: 990px; min-height: 610px; overflow: hidden; width: 100%;
}
.login-visual {
    background:
      linear-gradient(145deg, rgba(8, 77, 77, .29), rgba(7, 90, 83, .62)),
      url("../assets/images/theme/hero-resort.webp") center/cover;
    color: #fff; display: flex; flex-direction: column; justify-content: flex-end; padding: 55px; position: relative;
}
.login-visual::after { background: linear-gradient(transparent, rgba(3,43,45,.25)); content: ""; inset: 0; position: absolute; }
.login-visual-content { position: relative; z-index: 2; }
.login-kicker {
    align-items: center; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px; display: inline-flex; font-size: .72rem; font-weight: 700; gap: 7px; padding: 7px 12px;
}
.login-visual h1 { font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.13; margin: 20px 0 14px; max-width: 470px; }
.login-visual p { color: #d9eeea; font-size: .9rem; line-height: 1.65; margin: 0; max-width: 430px; }
.login-flight-path {
    align-items: center; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.24);
    border-radius: 50%; display: inline-flex; font-size: 1.35rem; height: 52px; justify-content: center;
    position: absolute; right: 38px; top: 35px; transform: rotate(-25deg); width: 52px; z-index: 2;
}
.login-form-wrap { display: flex; flex-direction: column; justify-content: center; padding: 55px 58px; }
.login-brand img { max-height: 55px; max-width: 155px; object-fit: contain; }
.login-heading { margin: 34px 0 26px; }
.login-heading > span { color: var(--admin-teal); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.login-heading h2 { font-size: 1.75rem; font-weight: 780; margin: 6px 0; }
.login-heading p { color: var(--admin-muted); font-size: .82rem; margin: 0; }
.login-form { display: grid; gap: 18px; }
.input-icon { position: relative; }
.input-icon > i { color: #8aa19f; left: 14px; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.input-icon .form-control { min-height: 49px; padding-left: 42px; }
.password-toggle {
    background: none; border: 0; color: #85999d; padding: 8px; position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
}
.login-form .admin-primary-btn { min-height: 50px; }
.login-help { color: #8a999e; font-size: .7rem; margin: 22px 0 0; text-align: center; }
.login-help i { color: var(--admin-teal); margin-right: 4px; }

@media (max-width: 1199.98px) {
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-admin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .admin-sidebar { transform: translateX(-100%); transition: transform .22s ease; }
    .admin-main { margin-left: 0; }
    .sidebar-open .admin-sidebar { transform: translateX(0); }
    .sidebar-open .admin-overlay { background: rgba(7,30,36,.48); display: block; inset: 0; position: fixed; z-index: 1035; }
    .admin-topbar { gap: 13px; padding: 0 20px; }
    .admin-topbar-title { margin-right: auto; }
    .admin-content { padding: 24px 20px 45px; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .gallery-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .login-card { grid-template-columns: 1fr; max-width: 560px; }
    .login-visual { display: none; }
}
@media (max-width: 575.98px) {
    .admin-topbar { height: 76px; padding: 0 14px; }
    .admin-topbar-title span { display: none; }
    .admin-topbar-title h1 { font-size: 1.05rem; }
    .admin-content { padding: 18px 13px 40px; }
    .stats-grid { grid-template-columns: 1fr; gap: 12px; }
    .admin-toolbar { align-items: stretch; flex-direction: column; }
    .admin-toolbar-form { align-items: stretch; flex-direction: column; max-width: none; }
    .admin-search { min-width: 0; width: 100%; }
    .admin-panel-header { align-items: flex-start; padding: 17px; }
    .admin-panel-body { padding: 18px; }
    .admin-form-actions { margin: 25px -18px -18px; padding: 15px 18px; }
    .detail-list { grid-template-columns: 1fr; }
    .gallery-admin-grid { grid-template-columns: 1fr; padding: 14px; }
    .detail-item:nth-child(odd) { padding-right: 0; }
    .auth-shell { padding: 14px; }
    .login-card { border-radius: 19px; min-height: auto; }
    .login-form-wrap { padding: 38px 26px; }
}
