/* base.css - Non-Bootstrap Content Wrapper Styles */

/* =========================
   CONTENT WRAPPER
   ========================= */
.content-wrapper {
    padding: 1.5rem;
    min-height: calc(100vh - 120px);
}

/* Lets a section inside content-wrapper span edge-to-edge again by canceling
   the wrapper's own padding, for full-width colored sections (marketing page
   hero/CTA bands) that are meant to bleed to the viewport edge. */
.content-wrapper .full-bleed {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.content-wrapper > .full-bleed:first-child {
    margin-top: -1.5rem;
}

@media (max-width: 991.98px) {
    .content-wrapper .full-bleed {
        margin-left: -1rem;
        margin-right: -1rem;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .content-wrapper > .full-bleed:first-child {
        margin-top: -1rem;
    }
}

.authenticated-user .content-wrapper .row {
    margin-left: 0;
    margin-right: 0;
}

.authenticated-user .content-wrapper .col,
.authenticated-user .content-wrapper [class*="col-"] {
    padding-left: 15px;
    padding-right: 15px;
}

/* .full-bleed sections (marketing hero/CTA bands) keep Bootstrap's own centered,
   gutter-padded .container so their content aligns with the navbar's .container
   above - only a plain content-wrapper container should fill the wrapper's width. */
.content-wrapper .container:not(.full-bleed .container),
.content-wrapper .container-fluid:not(.full-bleed .container-fluid) {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* On phones use Bootstrap's own gutters (row pulls out by half a gutter, cols pad
   by half), so g-2 / g-3 work and content is not indented twice. */
@media (max-width: 767.98px) {
    .authenticated-user .content-wrapper .row {
        margin-left: calc(var(--bs-gutter-x) * -.5);
        margin-right: calc(var(--bs-gutter-x) * -.5);
    }

    .authenticated-user .content-wrapper .row > * {
        padding-left: calc(var(--bs-gutter-x) * .5);
        padding-right: calc(var(--bs-gutter-x) * .5);
    }
}

@media (max-width: 991.98px) {
    .content-wrapper {
        padding: 1rem;
    }
    
    .authenticated-user .main-content {
        margin-left: 0 !important;
    }
}

.authenticated-user .dashboard-layout,
.authenticated-user .upload-layout,
.authenticated-user .history-layout {
    padding: 0;
}

.authenticated-user .dashboard-layout .container,
.authenticated-user .upload-layout .container,
.authenticated-user .history-layout .container {
    max-width: 100%;
    padding: 1.5rem;
}

.authenticated-user .full-width {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    width: calc(100% + 3rem);
}

@media (max-width: 991.98px) {
    .authenticated-user .full-width {
        margin-left: -1rem;
        margin-right: -1rem;
        width: calc(100% + 2rem);
    }
}

/* =========================
   SIDEBAR LOADING
   ========================= */
.sidebar-loading {
    opacity: 0.7;
    pointer-events: none;
}

/* =========================
   ACCESSIBILITY
   ========================= */
.sidebar-nav .nav-link:focus,
.mobile-nav .nav-link:focus {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}