:root {
    --hiker-green: #2d5a27;
    --hiker-green-light: #4a7c44;
    --hiker-gray: #4a4a4a;
    --hiker-rock: #d4d4d4;
    --hiker-orange: #e67e22;
    --hiker-white: #f8f9fa;
    --sidebar-width: 280px;
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--hiker-gray);
    background-color: var(--hiker-white);
}

.main-content {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    margin: 1rem;
    min-height: 80vh;
}

h1,
h2,
h3,
h4 {
    color: var(--hiker-green);
    font-weight: 700;
}

.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
    background-color: var(--hiker-green);
}

.nav-link {
    color: var(--hiker-gray);
    transition: all 0.2s ease;
    border-radius: 8px;
    margin-bottom: 2px;
}

.nav-link:hover {
    background-color: var(--hiker-rock);
    color: var(--hiker-green);
    transform: translateX(5px);
}

.btn-primary {
    background-color: var(--hiker-green);
    border-color: var(--hiker-green);
}

.btn-primary:hover {
    background-color: var(--hiker-green-light);
    border-color: var(--hiker-green-light);
}

.btn-success {
    background-color: var(--hiker-orange);
    border-color: var(--hiker-orange);
}

.btn-success:hover {
    background-color: #d35400;
    border-color: #d35400;
}

.card {
    border: none;
    transition: transform 0.3s ease;
}


.table thead th {
    background-color: var(--hiker-green);
    color: white;
    border: none;
}

.personal-trip {
    background-color: rgba(230, 126, 34, 0.1) !important;
    border-left: 4px solid var(--hiker-orange) !important;
}

.personal-name {
    color: var(--hiker-orange);
    font-weight: 700;
}

.photo-item img {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border-radius: 8px;
}

.photo-item img:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.app-shell {
    display: block;
}

.app-sidebar {
    width: var(--sidebar-width);
}

.app-content {
    width: 100%;
    max-width: 100%;
    flex: none;
}

.offcanvas {
    --bs-offcanvas-width: min(400px, 85vw);
}

@media (min-width: 992px) {
    .app-shell {
        display: flex;
        align-items: flex-start;
    }

    .app-sidebar {
        flex: 0 0 var(--sidebar-width);
        position: sticky;
        top: 0;
        height: 100vh;
        overflow-y: auto;
    }

    .app-content {
        flex: 1 1 auto;
        width: auto;
    }
}

@media (max-width: 991.98px) {
    .main-content {
        padding: 1.25rem;
        margin: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    header img {
        max-height: 140px;
        object-fit: cover;
    }
}