/* Responsive rules that complement Bootstrap breakpoints. */

@media (min-width: 576px) {
    .dc-dashboard-grid > .span-sm-6 {
        grid-column: span 6;
    }
}

@media (min-width: 768px) {
    .dc-section {
        padding-block: 4rem;
    }

    .dc-dashboard-grid > .span-md-4 {
        grid-column: span 4;
    }

    .dc-dashboard-grid > .span-md-6 {
        grid-column: span 6;
    }

    .dc-dashboard-grid > .span-md-8 {
        grid-column: span 8;
    }
}

@media (min-width: 992px) {
    .py-lg-6 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }

    .dc-section {
        padding-block: 5rem;
    }

    .dc-page-pad {
        padding-inline: var(--dc-page-padding-desktop);
    }

    .dc-dashboard-grid > .span-lg-3 {
        grid-column: span 3;
    }

    .dc-dashboard-grid > .span-lg-4 {
        grid-column: span 4;
    }

    .dc-dashboard-grid > .span-lg-6 {
        grid-column: span 6;
    }

    .dc-dashboard-grid > .span-lg-8 {
        grid-column: span 8;
    }
}

@media (min-width: 1200px) {
    .brand-wordmark {
        width: 196px;
    }

    .admin-sidebar {
        min-height: 100vh;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .admin-sidebar {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    }

    .admin-sidebar .nav {
        flex-direction: row !important;
        flex-wrap: wrap;
    }

    .dc-toolbar {
        align-items: flex-start;
    }
}

@media (max-width: 767.98px) {
    body {
        background: var(--dc-white);
    }

    .dc-section,
    .dc-section-compact {
        padding-block: 2.5rem;
    }

    .dc-page-pad {
        padding-inline: var(--dc-page-padding-mobile);
    }

    .dc-card .card-body,
    .card.dc-card .card-body,
    .dc-form-panel {
        padding: var(--dc-space-4);
    }

    .dc-toolbar,
    .dc-shell-topbar {
        flex-direction: column;
        align-items: stretch;
    }

    .table-responsive-mobile {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .dc-mobile-only-note {
        display: block;
    }
}

@media (max-width: 575.98px) {
    .brand-wordmark {
        width: 152px;
    }

    .brand-mark {
        width: 40px;
        height: 40px;
    }

    .logo-safe-hero {
        padding: var(--dc-logo-safe-card);
    }

    .btn-lg,
    .mobile-full-width {
        width: 100%;
    }

    .offcanvas {
        width: min(90vw, 360px) !important;
    }

    .dc-device-frame {
        max-width: 285px;
        border-width: 8px;
    }

    .dc-device-frame__screen {
        min-height: 470px;
    }
}


/* Phase 4 public shell breakpoint behavior. */
@media (min-width: 992px) {
    .navbar .nav-link {
        padding-inline: 0.8rem;
    }

    .public-page .site-main > section:first-child .container {
        padding-inline: var(--dc-page-padding-desktop);
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .public-hero {
        min-height: auto;
    }

    .public-hero .dc-hero-panel,
    .public-preview-board {
        max-width: 640px;
        margin-inline: auto;
    }
}

@media (max-width: 767.98px) {
    .public-hero {
        min-height: auto;
    }

    .public-hero .container,
    .page-hero .container {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }

    .dc-feature-card,
    .public-preview-board {
        padding: var(--dc-space-4);
    }

    .mini-stat-card {
        min-height: 96px;
    }
}

@media (max-width: 575.98px) {
    .site-header .btn {
        justify-content: center;
    }

    .hero-chip {
        width: 100%;
        justify-content: center;
    }
}


/* Phase 5 documentation responsiveness. */
@media (max-width: 991.98px) {
    .docs-toolbar {
        flex-wrap: wrap;
    }

    .docs-detail-card {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .docs-toolbar {
        display: grid;
        grid-template-columns: 1fr;
        padding: var(--dc-space-3);
    }

    .docs-search-wrap,
    .docs-filter-wrap,
    .docs-manifest-btn {
        width: 100%;
        min-width: 0;
    }

    .docs-actions .btn-group {
        display: grid;
        grid-template-columns: 1fr;
    }

    .docs-detail-list {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
}


/* Phase 7 registration responsiveness. */
@media (max-width: 767.98px) {
    .registration-choice-grid {
        grid-template-columns: 1fr;
    }

    .registration-submit-row {
        flex-direction: column;
        align-items: stretch;
    }

    .registration-submit-row .btn {
        width: 100%;
    }

    .registration-side-card {
        height: auto !important;
    }
}

@media (max-width: 575.98px) {
    .registration-result-list {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
}


@media (max-width: 767.98px) {
  .attendee-card-visual {
    padding: 1rem;
  }

  .attendee-qr-box canvas {
    width: 180px;
    height: 180px;
  }

  .attendee-nav .container {
    scrollbar-width: thin;
  }
}

/* Phase 9 admin responsive shell */
@media (max-width: 991.98px) {
  .admin-sidebar {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
  }

  .admin-nav .nav-link {
    min-height: 44px;
  }
}

@media (max-width: 575.98px) {
  .admin-login-page .display-tight {
    font-size: 2rem;
  }

  .dc-meta-list {
    grid-template-columns: 1fr;
    gap: .25rem;
  }

  .admin-module-card {
    padding: .9rem;
  }
}


@media (max-width: 1199.98px) {
  .admin-setup-grid {
    grid-template-columns: 1fr;
  }

  .admin-setup-form-card {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .setup-subnav {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: .625rem;
  }

  .setup-subnav-link {
    white-space: nowrap;
  }

  .admin-setup-table-card .card-header {
    align-items: flex-start !important;
    flex-direction: column;
  }
}


@media (max-width: 991.98px) {
  .operation-form-card {
    position: static;
  }

  .operation-context-strip {
    grid-template-columns: 1fr;
  }

  .operation-local-search {
    max-width: none;
  }
}

@media (max-width: 575.98px) {
  .admin-operation-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .25rem;
  }

  .admin-operation-tabs .btn {
    white-space: nowrap;
  }

  .operation-filter-bar {
    display: block;
  }

  .operation-filter-bar > div,
  .operation-filter-bar .btn {
    width: 100%;
    margin-bottom: .75rem;
  }
}
