:root { --app-radius: 1rem; }
body { min-height: 100vh; background: var(--bs-body-bg); }
.navbar-brand { letter-spacing: -0.02em; }
.card { border-radius: var(--app-radius); border-color: color-mix(in srgb, var(--bs-border-color) 75%, transparent); box-shadow: 0 .35rem 1.2rem rgba(0, 0, 0, .035); }
.metric-card .metric-label { color: var(--bs-secondary-color); font-size: .78rem; text-transform: uppercase; letter-spacing: .055em; font-weight: 700; }
.metric-card .metric-value { font-size: clamp(1.35rem, 3vw, 1.95rem); line-height: 1.1; font-weight: 750; letter-spacing: -.03em; }
.table > :not(caption) > * > * { vertical-align: middle; }
.form-card { position: sticky; top: 5.4rem; }
.chart-wrap { min-height: 300px; position: relative; }
.chart-wrap-sm { min-height: 230px; }
.empty-state { padding: 3rem 1rem; text-align: center; color: var(--bs-secondary-color); }
.badge-soft { background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); }
.active-vehicle-card { border-color: var(--bs-primary-border-subtle); box-shadow: 0 .4rem 1.3rem rgba(var(--bs-primary-rgb), .10); }
.reminder-item + .reminder-item { border-top: 1px solid var(--bs-border-color); padding-top: 1rem; }
.completion-panel { background: var(--bs-body-bg); border-radius: .75rem; padding: 1rem; }
details > summary { list-style: none; display: inline-block; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
.hero-card, .longterm-card { overflow: hidden; }
@media (max-width: 991.98px) { .form-card { position: static; } }

/* Login */
.login-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at top, rgba(var(--bs-primary-rgb), .12), transparent 34rem),
        var(--bs-body-bg);
}

.login-wrapper {
    max-width: 460px;
}

.login-icon {
    font-size: 3rem;
    line-height: 1;
}

.login-card {
    border-radius: 1.25rem;
}

/* Bootstrap 6 design accents and responsive drawer */
body { background: #f6f8fc; }
.navbar { box-shadow: 0 2px 18px rgba(20,45,80,.035); }
.bg-1 { background-color: #fff; }
.fg-muted { color: #64748b; }

/* Bootstrap 6: keep desktop navigation and account controls on one line. */
.app-navbar-container {
    max-width: 1600px;
    padding-inline: clamp(1rem, 2vw, 2.25rem);
}

.app-navbar .navbar-brand {
    flex-shrink: 0;
    margin-right: clamp(.75rem, 1.2vw, 1.5rem);
    white-space: nowrap;
}

.app-navbar-content {
    gap: 1rem;
}

.app-navbar-links {
    min-width: 0;
}

.app-navbar-links .nav-link {
    border-radius: .5rem;
}

.app-navbar-actions {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.vehicle-switcher,
.logout-form {
    margin: 0;
}

.vehicle-switcher .form-select {
    min-width: 0;
    width: 100%;
}

@media (max-width: 1279.98px) {
    .app-navbar .drawer {
        max-width: 24rem;
    }

    .app-navbar-content {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .app-navbar-links .nav-link {
        padding: .65rem .75rem;
    }

    .app-navbar-actions {
        padding-top: 1rem;
        border-top: 1px solid var(--bs-border-color);
    }

    .vehicle-switcher,
    .logout-form,
    .logout-form .btn {
        width: 100%;
    }
}

@media (min-width: 1280px) {
    .app-navbar-content {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: clamp(.5rem, 1vw, 1.25rem);
        min-width: 0;
        width: 100%;
    }

    .app-navbar-links {
        display: flex;
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
        gap: .1rem;
        margin: 0;
    }

    .app-navbar-links .nav-link {
        padding: .45rem .5rem;
        font-size: .88rem;
        white-space: nowrap;
    }

    .app-navbar-actions {
        flex-direction: row;
        align-items: center;
        gap: .65rem;
        margin-left: auto;
        flex-shrink: 0;
    }

    .vehicle-switcher {
        width: clamp(9rem, 11vw, 12rem);
    }

    .logout-form .btn {
        white-space: nowrap;
    }
}
