/**
 * Wizard Fullscreen — Page Shell
 *
 * Page-level layout for the wizard: wrap, admin-bar adjustments, flex-row
 * content container, main content column, form, form-table, session-expired
 * overlay. The sticky header is in wizard-header.css; the bottom nav is in
 * wizard-navigation.css; the sidebar is in sidebar.css.
 *
 * @package    SmartCycleDiscounts
 * @subpackage SmartCycleDiscounts/resources/assets/css/wizard/wizard-fullscreen.css
 * @since      1.0.0
 */

/* Dynamic theme color aliases — populated by JavaScript */
:root {
    --wsscd-wizard-primary: var(--wsscd-color-primary);
    --wsscd-wizard-secondary: var(--wsscd-color-secondary);
    --wsscd-wizard-success: var(--wsscd-color-success);
    --wsscd-wizard-warning: var(--wsscd-color-warning);
    --wsscd-wizard-danger: var(--wsscd-color-danger);
    --wsscd-wizard-accent: var(--wsscd-color-accent);
}

/* ==========================================================================
   Page wrap + WordPress admin adjustments
   ========================================================================== */

/* Reset admin.min.css conflicts (use longhand so bottom padding isn't
   clobbered — it's set in wizard-navigation.css to align last card with
   the sticky sidebar's bottom edge). */
.wsscd-wizard-wrap {
    border: none;
    border-radius: 0;
    padding-top: 0;
    padding-right: 0;
    padding-left: 0;
}

.wsscd-campaign-wizard * {
    box-sizing: border-box;
}

.wsscd-campaign-wizard #wpcontent {
    padding-left: 0;
}

.wrap.wsscd-campaign-wizard {
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Main wizard wrapper */
.wsscd-wizard-wrap {
    min-height: calc(100vh - 32px);
    display: flex;
    flex-direction: column;
}

/* ==========================================================================
   Content layout
   ========================================================================== */

/* Main content container: page-level sizing + positioning.
   Flex layout (display, gap, align-items) is set via the co-applied
   .wsscd-wizard-layout class — both classes target the same element
   (<div class="wsscd-wizard-content wsscd-wizard-layout">).
   min-height is set on .wsscd-wizard-layout in sidebar.css
   at ≥961px to guarantee enough room for the sticky sidebar. */
.wsscd-wizard-content {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    position: relative;
}

/* Wizard layout container (flex row) */
.wsscd-wizard-layout {
    display: flex;
    gap: var(--wsscd-gap-large);
    align-items: flex-start;
}

/* Main content area */
.wsscd-step-main-content {
    flex: 1;
    min-width: 0;
}

/* Sidebar positioning/layout lives in sidebar.css */

/* Responsive gap/direction only — sidebar width/positioning lives in
   sidebar.css (single source of truth). */
@media (max-width: 1200px) {
    .wsscd-wizard-layout {
        gap: var(--wsscd-gap-spacious);
    }
}

@media (max-width: 960px) {
    .wsscd-wizard-layout {
        flex-direction: column;
    }
}

@media (max-width: 782px) {
    .wsscd-wizard-layout {
        gap: var(--wsscd-gap-normal);
    }
}

/* Ensure main content doesn't overlap navigation */
.wsscd-wizard-step {
    margin-bottom: 0;
    padding-bottom: 0;
}

/* ==========================================================================
   Form wrapper
   ========================================================================== */

.wsscd-wizard-form {
    width: 100%;
}

/* Establish positioning context for direct children of the content row */
.wsscd-wizard-content > * {
    position: relative;
}

/* ==========================================================================
   Form table (WordPress default form styling inside wizard steps)
   ========================================================================== */

.form-table {
    margin: 0;
}

.form-table th {
    width: 200px;
    padding: var(--wsscd-padding-section) 10px 20px 0;
    font-weight: var(--wsscd-font-weight-semibold);
    font-size: var(--wsscd-font-size-medium);
    vertical-align: top;
}

.form-table td {
    padding: var(--wsscd-padding-compact) 0;
    vertical-align: top;
}

.wsscd-wizard-step .form-table {
    width: 100%;
    border-collapse: collapse;
}

.wsscd-wizard-step .form-table th {
    min-width: 150px;
    word-wrap: break-word;
    vertical-align: top;
}

.wsscd-wizard-step .form-table td {
    word-wrap: break-word;
    padding-right: 20px;
    vertical-align: top;
}

@media (max-width: 782px) {
    .wsscd-wizard-step .form-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .wsscd-wizard-step .form-table th,
    .wsscd-wizard-step .form-table td {
        white-space: normal;
        min-width: 120px;
    }
}

@media (max-width: 480px) {
    .wsscd-wizard-step .form-table,
    .wsscd-wizard-step .form-table tbody,
    .wsscd-wizard-step .form-table tr,
    .wsscd-wizard-step .form-table th,
    .wsscd-wizard-step .form-table td {
        display: block;
        width: 100%;
    }

    .wsscd-wizard-step .form-table th {
        margin-bottom: 5px;
        font-weight: bold;
    }

    .wsscd-wizard-step .form-table td {
        margin-bottom: 15px;
        padding-left: 0;
        border: none;
    }
}

/* ==========================================================================
   Utilities
   ========================================================================== */

.required {
    color: var(--wsscd-color-danger);
}

.description {
    display: block;
    margin-top: 5px;
    font-size: var(--wsscd-font-size-base);
    color: var(--wsscd-color-text-muted);
}

/* ==========================================================================
   Hide WordPress chrome that conflicts with the fullscreen wizard
   ========================================================================== */

.wsscd-campaign-wizard .notice {
    display: none;
}

.wsscd-wizard-page ~ #wpbody-content #screen-meta-links,
.wsscd-wizard-page ~ #wpbody-content #screen-meta {
    display: none !important;
}

body:has(.wsscd-wizard-page) #screen-meta-links,
body:has(.wsscd-wizard-page) #screen-meta {
    display: none !important;
}

/* ==========================================================================
   Session expired overlay
   ========================================================================== */

.wsscd-wizard-wrap.session-expired {
    pointer-events: none;
    opacity: 0.6;
    filter: grayscale(0.5);
}

.wsscd-wizard-wrap.session-expired::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--wsscd-color-overlay-light);
    z-index: var(--wsscd-z-modal);
    pointer-events: none;
}
