html, body {
    height: 100%;
}

/* Base body styles with theme awareness */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

[data-bs-theme="light"] {
    background-color: #f8f9fa !important;
    color: #212529;
}

[data-bs-theme="dark"] {
    background-color: #121212 !important;
    color: #f8f9fa;
}

/* Navbar styles */
.navbar {
    z-index: 1020;
}

body[data-bs-theme="light"] .navbar {
    background-color: #ffffff;
    border-bottom: 1px solid #dee2e6 !important;
    box-shadow: 0 2px 4px rgba(0,0,0,.05);
}

body[data-bs-theme="dark"] .navbar {
    background-color: #1e1e1e;
    border-bottom: 1px solid #333 !important;
    box-shadow: 0 2px 4px rgba(0,0,0,.3);
}

/* Container and layout */
.container.mb-5 {
    flex: 1 0 auto;
}

.mode-content {
    min-height: 400px;
}

#mode-selector .list-group-item {
    cursor: pointer;
}

/* Dark mode specific component overrides */
body[data-bs-theme="dark"] .bg-light {
    background-color: #1e1e1e !important;
}

body[data-bs-theme="dark"] .card {
    background-color: #1e1e1e;
    border-color: #333;
}

body[data-bs-theme="dark"] .list-group-item {
    background-color: #1e1e1e;
    color: #e0e0e0;
    border-color: #333;
}

body[data-bs-theme="dark"] .list-group-item.active {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

body[data-bs-theme="dark"] .form-control, 
body[data-bs-theme="dark"] .form-select {
    background-color: #2a2a2a;
    border-color: #444;
    color: #e0e0e0;
}

body[data-bs-theme="dark"] .form-control::placeholder {
    color: #888;
}

/* Footer styles */
.footer {
    border-top: 1px solid #dee2e6 !important;
}

body[data-bs-theme="light"] .footer {
    background-color: #ffffff;
}

body[data-bs-theme="dark"] .footer {
    background-color: #1e1e1e;
    border-top: 1px solid #333 !important;
}

/* Utility styles */
pre {
    background-color: #2b2b2b;
    color: #e6e6e6;
    padding: 1rem;
    border-radius: 4px;
    font-size: 0.9rem;
    overflow-x: auto;
}

.copy-btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.progress {
    height: 25px;
}

.card-header h4 {
    font-size: 1.25rem;
}

.navbar-brand {
    font-weight: bold;
}

.small-muted {
    font-size: 0.8rem;
    color: #6c757d;
}

.form-label {
    font-weight: 500;
}
