@view-transition {
    navigation: auto;
}

body {
    font-family: 'Roboto', sans-serif !important;
}

a {
    transition: ease 300ms;
    -webkit-user-select: none !important;
    text-decoration: none !important;
    color: inherit !important;
}

a:hover {
    transition: ease 300ms;
    color: rgb(67, 161, 95) !important;
}

.sticky-top {
    z-index: 1020;
}

.sticky-top .pe-xl-5:hover {
    background-color: #f4f7f9;
}

.dropdown-menu .btn:hover {
    transition: ease 300ms;
    color: rgb(67, 161, 95) !important;
}


.dropdown-menu {
    min-width: 300px !important;
    z-index: 1030 !important;
}

.dropdown-menu a {
    transition: ease 300ms;
    color: #08060e !important;
}

.bg-fluid {
    background: linear-gradient(45deg, #f4f7f9, #f9f9f9) !important;
}

.bg-nucash {
    background: linear-gradient(180deg, #0f5132, #198754);
}

.bg-nucash-top {
    background: #0f5132;
}

.text-shadow {
    text-shadow: 2px 4px 6px rgba(0, 0, 0, 0.164)
}

.slow {
    animation-delay: 600ms;
}

.tgg_show {
    display: inline-flex !important;
}

.tgg_hide {
    display: none !important;
}

@media only screen and (min-device-width: 0px) {
    .desktop {
        display: none !important;
    }

    .mobile {
        display: flex !important;
    }
}

@media only screen and (min-device-width: 480px) {
    .desktop {
        display: flex !important;
    }

    .mobile {
        display: none !important;
    }
}

/* Mobile touch targets — scoped to .mobile components (visible only at < 480px) */
.mobile .form-control {
    min-height: 44px;
    font-size: 16px; /* prevents iOS auto-zoom */
}

.mobile select {
    min-height: 44px;
    font-size: 16px;
}

.mobile .card-footer .btn:not(.pe-none-tgg) {
    min-height: 44px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* Bottom nav bar touch targets — wrapper is d-xl-none so mobile-only in effect */
.fixed-bottom .btn.w-100 {
    min-height: 44px;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Legal section styling - cleaner paragraph spacing */
.accordion-body p {
    margin-bottom: 0.75rem;
    line-height: 1.6;
}

.accordion-body p:empty,
.accordion-body p:has(> :only-child:is(br)),
.accordion-body p:only-child {
    display: none;
}

/* Hide &nbsp; only paragraphs in legal sections */
.accordion-body p:not(:has(*)):not(:empty) {
    margin-bottom: 0.5rem;
}

.accordion-body ol, .accordion-body ul {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}

.accordion-body li {
    margin-bottom: 0.5rem;
}

.accordion-body strong {
    font-weight: 600;
}

/* Desktop: totals/tabs inside sticky-top get the page background */
@media only screen and (min-device-width: 480px) {
    .sticky-top [name=totals],
    .sticky-top [name=tabs] {
        background: linear-gradient(45deg, #f4f7f9, #f9f9f9);
        padding-top: 4px;
        padding-bottom: 4px;
    }
    .sticky-top [name=tabs] {
        border-bottom: 1px solid #dee2e6;
    }
}

/* Fixed bottom nav - ensure dropup works properly on mobile */
.fixed-bottom {
    z-index: 1050 !important;
}

.fixed-bottom .dropdown-menu {
    z-index: 1060 !important;
}

/* Ensure dropup toggle is tappable on mobile */
.fixed-bottom .dropup,
.fixed-bottom .btn-group.dropup {
    position: static;
}

.fixed-bottom .dropup .dropdown-toggle,
.fixed-bottom .btn-group.dropup .dropdown-toggle {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}