.trip-detail { min-height: 100vh; display: flex; flex-direction: column; background: var(--color-bg-secondary); } /* Header */ .trip-detail-header { background: var(--color-bg-primary); border-bottom: 1px solid var(--color-border); padding: var(--spacing-md) var(--spacing-xl) var(--spacing-lg); box-shadow: var(--shadow-sm); } .header-nav { margin-bottom: 1rem; } .btn-back { color: var(--color-text-secondary); text-decoration: none; font-size: 0.9rem; display: inline-flex; align-items: center; gap: var(--spacing-xs); transition: color var(--transition-normal); } .btn-back:hover { color: var(--color-text-primary); } .header-content h1 { margin: 0 0 0.5rem 0; font-size: 2rem; color: var(--color-text-primary); } .trip-description { color: var(--color-text-secondary); margin: 0 0 1rem 0; font-size: 1.1rem; } .trip-dates { display: flex; align-items: center; gap: var(--spacing-sm); font-size: 0.95rem; } .date-label { color: var(--color-text-muted); font-weight: 500; } .date-value { color: var(--color-text-primary); } .date-separator { color: var(--color-text-light); margin: 0 0.5rem; } /* Content Layout */ .trip-detail-content { flex: 1; display: flex; gap: 0; height: calc(100vh - var(--header-height)); } .trip-detail-sidebar { width: var(--sidebar-width); background: var(--color-bg-primary); border-right: 1px solid var(--color-border); overflow-y: auto; } .trip-detail-main { flex: 1; padding: var(--spacing-xl); overflow-y: auto; } /* Calendar Placeholder */ .calendar-placeholder { background: var(--color-bg-primary); border-radius: var(--border-radius-lg); padding: var(--spacing-xl); text-align: center; box-shadow: var(--shadow-sm); } .calendar-placeholder h2 { color: var(--color-text-primary); margin: 0 0 1rem 0; } .calendar-placeholder p { color: var(--color-text-muted); } /* Loading State */ .trip-detail-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; gap: var(--spacing-md); } .spinner { width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid #333; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Error State */ .trip-detail-error { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; text-align: center; gap: var(--spacing-md); } .trip-detail-error h2 { color: var(--color-danger); margin: 0; } .trip-detail-error p { color: var(--color-text-secondary); margin: 0; } .trip-detail-error .btn-back { margin-top: 1rem; padding: var(--spacing-sm) var(--spacing-md); background: #333; color: white; text-decoration: none; border-radius: var(--border-radius-sm); transition: background var(--transition-normal); } .trip-detail-error .btn-back:hover { background: #555; } /* Responsive */ @media (max-width: 768px) { .trip-detail-content { flex-direction: column; height: auto; } .trip-detail-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--color-border); min-height: 400px; } .trip-detail-main { padding: var(--spacing-md); } .trip-detail-header { padding: var(--spacing-md); } .header-content h1 { font-size: 1.5rem; } }