:root {
    --admin-bg: #f3f5f2;
    --admin-panel: #ffffff;
    --admin-ink: #17221c;
    --admin-muted: #6b776f;
    --admin-line: #dfe5df;
    --admin-green: #174d39;
    --admin-green-dark: #0b2d21;
    --admin-yellow: #f4ca48;
    --admin-red: #9b2c2c;
    --admin-shadow: 0 15px 40px rgba(15, 45, 34, .08);
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--admin-ink); background: var(--admin-bg); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.admin-body { min-height: 100vh; }
.admin-sidebar {
    position: fixed;
    z-index: 20;
    inset: 0 auto 0 0;
    width: 255px;
    display: flex;
    flex-direction: column;
    padding: 24px 18px;
    color: #fff;
    background: var(--admin-green-dark);
}
.admin-brand { display: flex; align-items: center; gap: 11px; margin: 0 8px 30px; }
.admin-brand span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: var(--admin-green-dark); background: var(--admin-yellow); font-family: Georgia, serif; font-weight: 900; }
.admin-sidebar nav { display: grid; gap: 5px; }
.admin-sidebar nav a { padding: 12px 14px; border-radius: 9px; color: #c9d9d0; font-size: .9rem; font-weight: 700; }
.admin-sidebar nav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.admin-sidebar-footer { display: grid; gap: 5px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); }
.admin-sidebar-footer a, .admin-sidebar-footer button { width: 100%; padding: 9px 12px; border: 0; color: #b8cec2; background: transparent; text-align: left; font-size: .82rem; }
.admin-sidebar-footer form { margin: 0; }
.admin-shell { min-height: 100vh; margin-left: 255px; }
.admin-header { height: 72px; display: flex; align-items: center; justify-content: flex-end; padding: 0 30px; border-bottom: 1px solid var(--admin-line); background: rgba(255,255,255,.92); }
.admin-header div { display: grid; text-align: right; }
.admin-header small { color: var(--admin-muted); }
.admin-menu-toggle { display: none; margin-right: auto; border: 0; background: none; font-size: 1.5rem; }
.admin-main { max-width: 1500px; margin: auto; padding: 34px; }
.admin-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.admin-page-heading small { color: var(--admin-green); font-size: .73rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.admin-page-heading h1 { margin: 3px 0 0; font-family: Georgia, serif; font-size: clamp(2rem,4vw,3rem); }
.admin-primary-button, .admin-secondary-button {
    display: inline-flex;
    min-height: 43px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 9px;
    font-weight: 800;
}
.admin-primary-button { color: #fff; background: var(--admin-green); }
.admin-secondary-button { border-color: var(--admin-line); background: #fff; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; margin-bottom: 28px; }
.admin-stat-grid article { display: grid; gap: 8px; padding: 24px; border: 1px solid var(--admin-line); border-radius: 15px; background: var(--admin-panel); box-shadow: var(--admin-shadow); }
.admin-stat-grid span { color: var(--admin-muted); font-size: .8rem; font-weight: 750; text-transform: uppercase; }
.admin-stat-grid strong { font-family: Georgia, serif; font-size: 2rem; }
.admin-stat-grid small { color: var(--admin-muted); }
.admin-panel, .admin-form-card { margin-bottom: 24px; border: 1px solid var(--admin-line); border-radius: 15px; background: var(--admin-panel); box-shadow: var(--admin-shadow); }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; padding: 21px 24px; border-bottom: 1px solid var(--admin-line); }
.admin-panel-heading h2 { margin: 0; font-family: Georgia, serif; }
.admin-panel-heading a { color: var(--admin-green); font-weight: 800; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 840px; }
.admin-table th { padding: 13px 17px; color: var(--admin-muted); background: #f8faf8; text-align: left; font-size: .69rem; letter-spacing: .07em; text-transform: uppercase; }
.admin-table td { padding: 15px 17px; border-top: 1px solid var(--admin-line); vertical-align: middle; font-size: .86rem; }
.admin-table td small, .admin-table td strong { display: block; }
.admin-table td small { margin-top: 4px; color: var(--admin-muted); }
.admin-table td a { color: var(--admin-green); font-weight: 800; }
.admin-media-cell { display: flex; align-items: center; gap: 12px; min-width: 300px; }
.admin-media-cell img { width: 65px; height: 53px; object-fit: cover; border-radius: 8px; background: #e7ebe8; }
.admin-media-cell small { max-width: 430px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-status, .admin-tag { display: inline-flex; width: max-content; padding: 5px 9px; border-radius: 999px; font-size: .68rem; font-weight: 850; }
.admin-tag { margin: 2px; color: #5e4806; background: #fff0b8; }
.admin-status.pending { color: #6f5408; background: #fff0bd; }
.admin-status.confirmed, .admin-status.completed, .admin-status.paid { color: #155f3a; background: #dcf1e3; }
.admin-status.cancelled, .admin-status.failed, .admin-status.refunded { color: #8b2222; background: #f4dddd; }
.admin-actions { display: flex; align-items: center; gap: 10px; }
.admin-actions form { margin: 0; }
.admin-actions button { padding: 0; border: 0; color: var(--admin-red); background: none; font-weight: 750; }
.admin-filter { display: flex; gap: 10px; margin-bottom: 20px; }
.admin-filter input, .admin-filter select { min-height: 43px; padding: 9px 12px; border: 1px solid var(--admin-line); border-radius: 8px; background: #fff; }
.admin-filter input { min-width: 300px; }
.admin-filter button { min-height: 43px; padding: 9px 15px; border: 0; border-radius: 8px; color: #fff; background: var(--admin-green); }
.admin-filter a { align-self: center; color: var(--admin-green); font-weight: 750; }
.admin-filter-wide input { flex: 1; }
.admin-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.admin-destination-card { overflow: hidden; border: 1px solid var(--admin-line); border-radius: 15px; background: #fff; box-shadow: var(--admin-shadow); }
.admin-destination-card > img { width: 100%; height: 230px; object-fit: cover; }
.admin-destination-card > div { padding: 20px; }
.admin-destination-card h2 { margin: 5px 0 8px; font-family: Georgia,serif; }
.admin-destination-card p { min-height: 65px; color: var(--admin-muted); font-size: .86rem; }
.admin-card-tags { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.admin-form { display: grid; }
.admin-form-card { padding: 25px; }
.admin-form-card h2 { margin: 0 0 20px; font-family: Georgia, serif; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 17px; }
.admin-form-grid label { display: grid; gap: 7px; }
.admin-form-grid label > span { font-size: .76rem; font-weight: 800; }
.admin-form-grid .full { grid-column: 1 / -1; }
.admin-form-grid input, .admin-form-grid select, .admin-form-grid textarea {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #bbc7bf;
    border-radius: 8px;
    background: #fff;
    outline: none;
}
.admin-form-grid textarea { resize: vertical; }
.admin-form-grid input:focus, .admin-form-grid select:focus, .admin-form-grid textarea:focus { border-color: var(--admin-green); box-shadow: 0 0 0 3px rgba(23,77,57,.11); }
.admin-form-grid em { color: var(--admin-red); font-size: .72rem; font-style: normal; }
.admin-check-grid { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.admin-check-grid label { display: flex; align-items: center; gap: 7px; font-weight: 750; }
.admin-check-grid input { width: 18px; height: 18px; accent-color: var(--admin-green); }
.admin-image-preview { width: 100%; height: 150px; object-fit: cover; border: 1px solid var(--admin-line); border-radius: 9px; background: #f0f2f0; }
.admin-preview-label:has(img[src=""]) { display: none; }
.admin-form-actions { display: flex; gap: 10px; margin-top: 3px; }
.admin-validation { margin-bottom: 15px; color: var(--admin-red); }
.admin-alert { margin-bottom: 18px; padding: 13px 16px; border-radius: 9px; font-weight: 700; }
.admin-alert.success { color: #155f3a; background: #dcf1e3; }
.admin-alert.error { color: #8b2222; background: #f4dddd; }
.admin-detail-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.admin-detail-list { margin: 0; }
.admin-detail-list > div { display: grid; grid-template-columns: 150px 1fr; gap: 15px; padding: 12px 0; border-top: 1px solid var(--admin-line); }
.admin-detail-list dt { color: var(--admin-muted); font-size: .78rem; font-weight: 800; }
.admin-detail-list dd { margin: 0; overflow-wrap: anywhere; }
.admin-detail-list a { color: var(--admin-green); }
.admin-detail-list .admin-total { font-size: 1.15rem; font-weight: 900; }
.admin-status-form { max-width: 900px; }
.admin-login-page { min-height: 100vh; display: grid; place-items: center; padding: 25px; background: linear-gradient(135deg, var(--admin-green-dark), #1e6249); }
.admin-login-card { width: min(430px,100%); padding: 35px; border-radius: 18px; background: #fff; box-shadow: 0 25px 70px rgba(0,0,0,.22); }
.admin-brand-login { margin: 0 0 20px; color: var(--admin-ink); }
.admin-login-card > p { color: var(--admin-muted); }
.admin-login-card form { display: grid; gap: 10px; margin: 25px 0; }
.admin-login-card label:not(.admin-checkbox) { display: grid; gap: 6px; }
.admin-login-card label span { font-size: .78rem; font-weight: 800; }
.admin-login-card input { min-height: 45px; padding: 10px 12px; border: 1px solid var(--admin-line); border-radius: 8px; }
.admin-checkbox { display: flex; align-items: center; gap: 7px; }
.admin-login-card > a { color: var(--admin-green); font-size: .83rem; font-weight: 750; }

@media (max-width: 1100px) {
    .admin-stat-grid { grid-template-columns: repeat(2,1fr); }
    .admin-card-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 780px) {
    .admin-sidebar { transform: translateX(-100%); transition: transform .25s ease; }
    .admin-sidebar.open { transform: translateX(0); }
    .admin-shell { margin-left: 0; }
    .admin-menu-toggle { display: block; }
    .admin-main { padding: 22px 15px; }
    .admin-header { padding: 0 15px; }
    .admin-page-heading { align-items: flex-start; flex-direction: column; }
    .admin-stat-grid, .admin-card-grid, .admin-detail-grid, .admin-form-grid { grid-template-columns: 1fr; }
    .admin-form-grid .full { grid-column: auto; }
    .admin-filter { align-items: stretch; flex-direction: column; }
    .admin-filter input { min-width: 0; width: 100%; }
    .admin-filter a { align-self: flex-start; }
    .admin-form-card { padding: 19px; }
}


/* TheinterpidTravels admin additions */
.admin-brand { min-width: 0; }
.admin-brand img {
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    object-fit: contain;
    filter: drop-shadow(0 5px 12px rgba(0, 0, 0, .2));
}
.admin-brand strong {
    min-width: 0;
    overflow: hidden;
    font-size: .88rem;
    line-height: 1.15;
    text-overflow: ellipsis;
}
.admin-sidebar nav {
    min-height: 0;
    padding-right: 3px;
    overflow-y: auto;
    scrollbar-width: thin;
}
.admin-heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.admin-empty-panel { padding: 35px; text-align: center; }
.admin-empty-panel h2 { margin-top: 0; font-family: Georgia, serif; }
.admin-empty-panel p { color: var(--admin-muted); }
.admin-login-card .admin-brand img { width: 48px; height: 48px; }
.admin-login-card .admin-brand strong { color: var(--admin-ink); font-size: .95rem; }

@media (max-width: 780px) {
    .admin-heading-actions { width: 100%; justify-content: flex-start; }
    .admin-heading-actions > a { flex: 1 1 190px; }
    .admin-form-actions { flex-wrap: wrap; }
    .admin-form-actions > * { flex: 1 1 180px; }
}
