/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: 'DM Sans', sans-serif;
    background: #f0ede4;
    color: #222225;
    min-height: 100vh;
}

/* ══════════════════════════════════════
   TOP NAV
══════════════════════════════════════ */
.top-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: #fff;
    border-bottom: 1px solid #ece8de;
    position: sticky;
    top: 0;
    z-index: 200;
}
.back-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #222225;
    text-decoration: none;
    background: #f5f0e4;
    border-radius: 20px;
    padding: 6px 14px;
    transition: background 0.2s;
}
.back-btn:hover { background: #ece8de; }
.top-nav-center { display: flex; gap: 20px; }
.top-nav-center a {
    font-size: 13px;
    font-weight: 600;
    color: #aaa;
    text-decoration: none;
    transition: color 0.2s;
    cursor: pointer;
}
.top-nav-center a.active,
.top-nav-center a:hover { color: #222225; }

/* Auth area in nav */
#navAuthArea {
    display: flex;
    align-items: center;
    gap: 10px;
}
.nav-login-btn {
    font-size: 12px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 20px;
    background: #222225;
    color: #fff;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}
.nav-login-btn:hover { background: #444; }

/* ══════════════════════════════════════
   WISHLIST NAV BUTTON — index.css
   (CSS yang dipindahkan dari <style> di index.html)
══════════════════════════════════════ */

/* ── Wishlist nav button ── */
.nav-wishlist-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: inherit;
}

/* .nav-wishlist-link .nav-icon-btn inherits existing styles from styles.css */

/* Badge counter */
.wishlist-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 16px;
    height: 16px;
    background: #e05a5a;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.25s, transform 0.25s;
    font-family: 'DM Sans', sans-serif;
}
.wishlist-badge.visible {
    opacity: 1;
    transform: scale(1);
}

/* Pulse animation saat badge muncul */
@keyframes badgePop {
    0%   { transform: scale(0.6); }
    65%  { transform: scale(1.2); }
    100% { transform: scale(1); }
}
.wishlist-badge.pop {
    animation: badgePop 0.3s ease forwards;
}

/* Heart fill saat ada wishlist */
.nav-wishlist-link.has-items .nav-icon-btn svg path {
    fill: #e05a5a;
    stroke: #e05a5a;
}

/* ══════════════════════════════════════
   AUTH BAR (shown when logged in)
══════════════════════════════════════ */
.auth-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: #f5f0e4;
    border-bottom: 1px solid #ece8de;
    font-size: 13px;
}
.user-email { color: #555; font-weight: 500; flex: 1; }
.admin-badge {
    font-size: 11px;
    font-weight: 700;
    background: #75a9b3;
    color: #fff;
    padding: 2px 10px;
    border-radius: 20px;
}
.auth-bar-btn {
    font-size: 12px;
    font-weight: 600;
    padding: 4px 14px;
    border-radius: 20px;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}
.auth-bar-btn.logout {
    background: #ffe0e0;
    color: #c0392b;
}
.auth-bar-btn.logout:hover { background: #ffcdd2; }

/* ══════════════════════════════════════
   FILTER BAR
══════════════════════════════════════ */
.filter-bar {
    display: flex;
    gap: 8px;
    padding: 12px 20px;
    background: #fff;
    border-bottom: 1px solid #ece8de;
    overflow-x: auto;
    position: sticky;
    top: 57px;
    z-index: 100;
}
.filter-bar::-webkit-scrollbar { display: none; }
.filter-chip {
    font-size: 13px;
    font-weight: 600;
    padding: 6px 18px;
    border-radius: 20px;
    background: #f5f0e4;
    color: #888;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
    user-select: none;
    border: none;
}
.filter-chip.active,
.filter-chip:hover { background: #75a9b3; color: #fff; }

/* ══════════════════════════════════════
   GLOBAL RANGE HARGA PANEL
══════════════════════════════════════ */
.global-range-panel {
    background: #fff;
    border-bottom: 1px solid #ece8de;
    padding: 0 20px;
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s ease, padding 0.3s ease;
}
.global-range-panel.open {
    max-height: 160px;
    padding: 14px 20px;
}
.global-range-inner { max-width: 780px; margin: 0 auto; }
.global-range-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}
.global-range-label { font-size: 13px; font-weight: 700; color: #222225; }
.global-range-value {
    font-size: 13px;
    font-weight: 600;
    color: #75a9b3;
    flex: 1;
}
.global-range-close {
    background: none;
    border: none;
    font-size: 16px;
    color: #aaa;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s;
}
.global-range-close:hover { color: #e05a5a; }

/* Dual range wrapper */
.range-dual-wrap {
    position: relative;
    height: 24px;
    margin-bottom: 6px;
}
.range-dual-wrap input[type="range"] {
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
}
.range-dual-wrap input[type="range"]::-webkit-slider-thumb {
    pointer-events: all;
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #75a9b3;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    cursor: grab;
}

/* ══════════════════════════════════════
   PRICE SLIDER (shared)
══════════════════════════════════════ */
.price-slider {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(to right, #75a9b3 0%, #75a9b3 100%);
    outline: none;
    cursor: pointer;
    margin: 6px 0;
}
.price-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #75a9b3;
    border: 2px solid #fff;
    box-shadow: 0 1px 5px rgba(0,0,0,0.25);
    cursor: grab;
    transition: transform 0.15s;
}
.price-slider::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.15); }
.price-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #75a9b3;
    border: 2px solid #fff;
    cursor: grab;
}

.price-range-hints {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #bbb;
    font-weight: 500;
    margin-top: 2px;
}

/* ══════════════════════════════════════
   PAGE CONTENT
══════════════════════════════════════ */
.page-content {
    max-width: 780px;
    margin: 0 auto;
    padding: 24px 20px 60px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.category-section { width: 100%; }
.section-card {
    background: #faf7ee;
    border-radius: 20px;
    padding: 20px 20px 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

/* Section header */
.section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 12px;
}
.section-header-left h2 {
    font-size: 22px;
    font-weight: 900;
    color: #222225;
    font-family: 'Playfair Display', serif;
    line-height: 1.1;
}
.section-sub {
    font-size: 12px;
    color: #aaa;
    font-weight: 400;
    margin-top: 3px;
}
.section-header-right {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
    padding-top: 4px;
}
.filter-link {
    font-size: 13px;
    font-weight: 600;
    color: #aaa;
    cursor: pointer;
    transition: color 0.2s;
    white-space: nowrap;
    user-select: none;
}
.filter-link.active,
.filter-link:hover { color: #222225; }

/* Admin add button (inside section header) */
.edit-icon-sm {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 20px;
    cursor: pointer;
    color: #75a9b3;
    font-size: 12px;
    font-weight: 700;
    background: #e8f4f6;
    transition: background 0.2s;
    white-space: nowrap;
}
.edit-icon-sm:hover { background: #d0eaed; }

/* ══════════════════════════════════════
   PRICE RANGE PANEL (per section)
══════════════════════════════════════ */
.price-range-panel {
    display: none;
    background: #eef7f9;
    border-radius: 12px;
    padding: 12px 14px 10px;
    margin-bottom: 14px;
    animation: slideDown 0.25s ease;
}
.price-range-panel.visible { display: block; }
.price-range-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}
.price-range-label { font-size: 12px; font-weight: 700; color: #555; }
.price-range-value { font-size: 12px; font-weight: 600; color: #75a9b3; }

/* ══════════════════════════════════════
   SECTION REVIEWS PANEL
══════════════════════════════════════ */
.section-reviews-panel {
    display: none;
    margin-bottom: 14px;
    animation: slideDown 0.25s ease;
}
.section-reviews-panel.visible { display: block; }
.section-review-list { display: flex; flex-direction: column; gap: 10px; }
.section-reviews-loading { font-size: 12px; color: #aaa; text-align: center; padding: 10px 0; }

/* Review item */
.review-item {
    background: #f5f0e4;
    border-radius: 10px;
    padding: 10px 14px;
}
.review-item h4 {
    font-size: 13px;
    font-weight: 700;
    color: #222225;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}
.review-item p { font-size: 12px; color: #555; line-height: 1.5; }
.review-date { font-size: 11px; color: #bbb; display: block; margin-top: 4px; }

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ══════════════════════════════════════
   DEST GRID
══════════════════════════════════════ */
.dest-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

/* ══════════════════════════════════════
   DEST CARD
══════════════════════════════════════ */
.dest-card {
    border-radius: 14px;
    overflow: hidden;
    background: #f0ede4;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
}
.dest-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.10);
}
.dest-card.range-hidden { display: none; }

.dest-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
}
.dest-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.dest-card:hover .dest-img-wrap img { transform: scale(1.04); }

/* Fav / wishlist button */
.fav-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 30px;
    height: 30px;
    background: rgba(255,255,255,0.82);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    backdrop-filter: blur(4px);
    z-index: 2;
}
.fav-btn:hover { background: #fff; transform: scale(1.1); }
.fav-btn svg { width: 14px; height: 14px; color: #bbb; transition: fill 0.2s, color 0.2s; }
.fav-btn.active svg { fill: #e05a5a; color: #e05a5a; }

/* Card label + cost */
.dest-label {
    font-size: 12px;
    font-weight: 700;
    color: #222225;
    padding: 8px 10px 2px;
    line-height: 1.3;
    background: #f0ede4;
}
.dest-cost {
    font-size: 11px;
    font-weight: 600;
    color: #75a9b3;
    padding: 0 10px 8px;
    background: #f0ede4;
}

/* Admin card action buttons */
.admin-card-actions {
    position: absolute;
    bottom: 6px;
    left: 6px;
    display: flex;
    gap: 4px;
    z-index: 3;
}
.admin-edit-btn,
.admin-del-btn {
    background: rgba(255,255,255,0.88);
    border: none;
    border-radius: 8px;
    padding: 4px 6px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.2s;
    backdrop-filter: blur(4px);
}
.admin-edit-btn:hover { background: #e8f4f6; }
.admin-del-btn:hover  { background: #ffe0e0; }

/* ── VIEW ALL CARD ── */
.view-all-card {
    border-radius: 14px;
    background: #d6eaed;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    aspect-ratio: 4 / 3;
    transition: background 0.2s;
    align-self: start;
}
.view-all-card:hover { background: #c2dde2; }
.view-all-card span { font-size: 13px; font-weight: 700; color: #75a9b3; }

/* ── HIDDEN (category filter) ── */
.category-section.hidden { display: none; }

/* ══════════════════════════════════════
   AUTH MODAL (tabs + login + register)
══════════════════════════════════════ */
.auth-modal-box { max-width: 420px; }

.auth-tabs {
    display: flex;
    gap: 4px;
    background: #f0ede4;
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 20px;
}
.auth-tab {
    flex: 1;
    padding: 8px 0;
    border: none;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    background: transparent;
    color: #aaa;
    transition: background 0.2s, color 0.2s;
}
.auth-tab.active { background: #fff; color: #222225; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }

/* Password field wrapper */
.pwd-wrap { position: relative; }
.pwd-wrap .modal-input { padding-right: 40px; }
.pwd-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
    opacity: 0.5;
    transition: opacity 0.2s;
    padding: 0;
}
.pwd-toggle:hover { opacity: 1; }

/* Switch hint */
.auth-switch-hint {
    text-align: center;
    font-size: 12px;
    color: #aaa;
    margin-top: 10px;
}
.auth-switch-hint span {
    color: #75a9b3;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
}

/* User avatar in nav */
.nav-user-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #75a9b3;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.2s;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
.nav-user-avatar:hover { transform: scale(1.08); }

/* ══════════════════════════════════════
   MODAL OVERLAY
══════════════════════════════════════ */
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(3px);
}
.modal-overlay.open { display: flex; }

.modal-box {
    background: #fff;
    border-radius: 20px;
    padding: 28px 28px 24px;
    width: 100%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: modalIn 0.25s ease;
}
@keyframes modalIn {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}
.modal-title {
    font-size: 20px;
    font-weight: 900;
    color: #222225;
    font-family: 'Playfair Display', serif;
    margin-bottom: 4px;
}
.modal-sub { font-size: 13px; color: #888; margin-bottom: 18px; }
.modal-msg {
    font-size: 13px;
    font-weight: 600;
    padding: 8px 12px;
    border-radius: 8px;
    margin-bottom: 12px;
    display: none;
}
.modal-msg.error   { background: #ffe0e0; color: #c0392b; display: block; }
.modal-msg.success { background: #e0f5e9; color: #1a7a3c; display: block; }

.modal-form { display: flex; flex-direction: column; gap: 12px; }
.modal-row  { display: flex; gap: 12px; }
.modal-row .modal-group { flex: 1; }
.modal-group { display: flex; flex-direction: column; gap: 5px; }
.modal-label { font-size: 12px; font-weight: 700; color: #555; }
.modal-input,
.modal-select,
.modal-textarea {
    padding: 9px 12px;
    border: 1.5px solid #e0d9cc;
    border-radius: 10px;
    font-size: 13px;
    font-family: 'DM Sans', sans-serif;
    color: #222225;
    background: #faf7ee;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    width: 100%;
}
.modal-input:focus,
.modal-select:focus,
.modal-textarea:focus {
    border-color: #75a9b3;
    box-shadow: 0 0 0 3px rgba(117,169,179,0.15);
}
.modal-textarea { resize: vertical; min-height: 80px; }

.modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 6px;
}
.modal-cancel {
    padding: 9px 20px;
    border-radius: 20px;
    border: 1.5px solid #ddd;
    background: #fff;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    cursor: pointer;
    transition: background 0.2s;
}
.modal-cancel:hover { background: #f5f0e4; }
.modal-submit {
    padding: 9px 22px;
    border-radius: 20px;
    border: none;
    background: #222225;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s;
}
.modal-submit:hover { background: #444; }
.modal-submit:disabled { background: #aaa; cursor: not-allowed; }

/* ══════════════════════════════════════
   TOAST NOTIFICATION
══════════════════════════════════════ */
.toast-dest {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: #222225;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 22px;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s, transform 0.3s;
    z-index: 2000;
    white-space: nowrap;
}
.toast-dest.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.toast-dest.success { background: #1a7a3c; }
.toast-dest.error   { background: #c0392b; }

/* ══════════════════════════════════════
   MOBILE BOTTOM NAV
══════════════════════════════════════ */
.mobile-bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 300;
    background: #fff;
    border-top: 1px solid #ece8de;
    padding: 8px 0 env(safe-area-inset-bottom, 8px);
    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
    justify-content: space-around;
    align-items: center;
}
.mbn-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 4px 12px;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    font-family: 'DM Sans', sans-serif;
    transition: color 0.2s;
    min-width: 56px;
}
.mbn-item span:last-child {
    font-size: 10px;
    font-weight: 600;
}
.mbn-icon { font-size: 18px; line-height: 1; }
.mbn-item.active { color: #75a9b3; }
.mbn-item svg { width: 20px; height: 20px; }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width: 560px) {
    .dest-grid { grid-template-columns: repeat(2, 1fr); }
    .section-header-left h2 { font-size: 18px; }
    .top-nav-center { display: none; }
    .modal-row { flex-direction: column; }
    .modal-box { padding: 20px 16px 18px; }
    .mobile-bottom-nav { display: flex; }
    .page-content { padding-bottom: 90px; }
    .toast-dest { bottom: 80px; }
    .filter-bar { top: 57px; }
    .section-header-right { gap: 8px; }
    .section-card { padding: 16px 14px 12px; border-radius: 16px; }
    .top-nav { padding: 12px 16px; }
    .back-btn span { display: none; }
}
/* ── Upload Foto Destinasi ── */
.img-upload-wrap { display: flex; flex-direction: column; gap: 10px; }
.img-upload-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 8px; padding: 10px 16px; border-radius: 10px; cursor: pointer;
    border: 2px dashed #c9b99a; background: #fdf8f2; color: #7a5c3a;
    font-size: 14px; font-weight: 500; transition: all .2s;
}
.img-upload-btn:hover { border-color: #a0784a; background: #f5ede0; }
.img-upload-preview-row { display: flex; align-items: center; gap: 10px; }
#dImgPreviewWrap { display: flex; align-items: center; gap: 10px; }
.img-upload-preview {
    width: 100%; max-height: 160px; object-fit: cover;
    border-radius: 10px; border: 1px solid #e0d4c0;
}
.img-upload-clear {
    background: #e74c3c; color: #fff; border: none; border-radius: 50%;
    width: 26px; height: 26px; font-size: 13px; cursor: pointer;
    flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.img-uploading { opacity: .6; pointer-events: none; }
/* ── Alias: modal-form-group = modal-group (dest modal compat) ── */
.modal-form-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.modal-form-group label { font-size: 12px; font-weight: 700; color: #555; }
.modal-form-group input,
.modal-form-group select,
.modal-form-group textarea {
    padding: 9px 12px;
    border: 1.5px solid #e0d9cc;
    border-radius: 10px;
    font-size: 13px;
    font-family: 'DM Sans', sans-serif;
    color: #222225;
    background: #faf7ee;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    width: 100%;
}
.modal-form-group input:focus,
.modal-form-group select:focus,
.modal-form-group textarea:focus {
    border-color: #75a9b3;
    box-shadow: 0 0 0 3px rgba(117,169,179,0.15);
}
.modal-form-group textarea { resize: vertical; min-height: 80px; }
.modal-form-group small { font-size: 11px; color: #aaa; }

/* ── Alias button classes (compat) ── */
.modal-cancel-btn {
    padding: 9px 20px; border-radius: 20px; border: 1.5px solid #ddd;
    background: #fff; font-size: 13px; font-weight: 600; color: #888;
    cursor: pointer; transition: background 0.2s; font-family: 'DM Sans', sans-serif;
}
.modal-cancel-btn:hover { background: #f5f0e4; }
.modal-submit-btn {
    padding: 9px 22px; border-radius: 20px; border: none;
    background: #222225; font-size: 13px; font-weight: 700; color: #fff;
    cursor: pointer; transition: background 0.2s; font-family: 'DM Sans', sans-serif;
}
.modal-submit-btn:hover { background: #444; }
.modal-submit-btn:disabled { background: #aaa; cursor: not-allowed; }

/* ── Dest modal close button ── */
.modal-close-btn {
    position: absolute;
    top: 14px; right: 16px;
    background: none; border: none;
    font-size: 20px; color: #aaa;
    cursor: pointer; line-height: 1;
    transition: color 0.2s;
}
.modal-close-btn:hover { color: #e05a5a; }
.modal-box { position: relative; }

/* ── Nav range link aktif style ── */
.nav-range-link { transition: color 0.2s; }
.nav-range-link.active { color: #75a9b3 !important; }

/* ── Upload foto label (dest modal) ── */
.img-upload-label {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: 20px;
    background: #f5f0e4; color: #555; font-size: 13px; font-weight: 600;
    cursor: pointer; transition: background 0.2s; border: 1.5px dashed #c9b99a;
}
.img-upload-label:hover { background: #ece8de; }

/* ── Jarak panel (identik dengan globalRangePanel) ── */
#globalJarakPanel { display: block; }
#globalJarakPanel:not(.open) { max-height: 0; padding-top: 0; padding-bottom: 0; }