/* =============================================================
   Bulk Variations for WooCommerce — Admin Styles

   Brand palette:
     Primary:      #2563EB
     Hover:        #1D4ED8
     Active/deep:  #1E40AF
     Tint bg:      #EFF6FF
     Tint border:  #BFDBFE
   ============================================================= */

/* ---- Base -------------------------------------------------- */
.wcbv-wrap {
    box-sizing: border-box;
    max-width: 860px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.wcbv-wrap *,
.wcbv-wrap *::before,
.wcbv-wrap *::after {
    box-sizing: inherit;
}

/* Brand focus ring */
.wcbv-wrap a:focus-visible,
.wcbv-wrap button:focus-visible,
.wcbv-wrap input:focus-visible {
    outline: 2px solid #2563EB !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}

/* Inputs */
.wcbv-wrap input:not([type="submit"]),
.wcbv-wrap select,
.wcbv-wrap textarea {
    border-color: #dcdcde !important;
    box-shadow: none !important;
    transition: border-color .15s, border-width .1s !important;
}

.wcbv-wrap input:not([type="submit"]):focus,
.wcbv-wrap select:focus,
.wcbv-wrap textarea:focus {
    border-color: #2563EB !important;
    border-width: 2px !important;
    outline: none !important;
    box-shadow: none !important;
}

/* ---- Top bar ----------------------------------------------- */
.wcbv-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 8px;
    margin-bottom: 1.75rem;
    padding: 12px 16px;
}

.wcbv-topbar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
}

.wcbv-topbar-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: #2563EB;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wcbv-topbar-icon svg {
    width: 16px;
    height: 16px;
}

.wcbv-topbar-name {
    font-size: 15px;
    font-weight: 600;
    color: #1d2327;
    letter-spacing: -.01em;
}

.wcbv-version-badge {
    font-size: 11px;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 20px;
    background: #f0f0f1;
    color: #646970;
}

.wcbv-topbar-links {
    display: flex;
    align-items: center;
    gap: 16px;
}

.wcbv-topbar-links a {
    font-size: 12px;
    color: #646970;
    text-decoration: none;
}

.wcbv-topbar-links a:hover {
    color: #2563EB;
    text-decoration: underline;
}

/* ---- Layout ----------------------------------------------- */
.wcbv-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 20px;
    align-items: start;
    margin-bottom: 1.5rem;
}

.wcbv-layout__main {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

.wcbv-layout__sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* ---- Cards ------------------------------------------------- */
.wcbv-card {
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 8px;
    overflow: hidden;
}

.wcbv-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f1;
}

.wcbv-card-head h2 {
    font-size: 13px;
    font-weight: 600;
    color: #1d2327;
    margin: 0;
    flex: 1;
}

.wcbv-card-head .dashicons {
    color: #646970;
    font-size: 17px;
    width: 17px;
    height: 17px;
}

.wcbv-card-body {
    padding: 20px;
}

/* ---- Notices ---------------------------------------------- */
.wcbv-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    padding: 10px 14px;
    border-radius: 4px;
    margin-bottom: 1.25rem;
    border-left: 4px solid transparent;
}

.wcbv-notice-success {
    background: #EFF6FF;
    color: #1E40AF;
    border-left-color: #1D4ED8;
}

.wcbv-notice-success .dashicons {
    color: #1D4ED8;
    font-size: 16px;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.wcbv-notice-close {
    margin-left: auto;
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: #1E40AF;
    padding: 0 0 0 12px;
    opacity: .6;
    transition: opacity .15s;
}

.wcbv-notice-close:hover {
    opacity: 1;
}

/* ---- Form table ------------------------------------------- */
.wcbv-form-table {
    border-collapse: collapse;
    width: 100%;
}

.wcbv-form-table tr {
    border-bottom: 1px solid #f6f7f7;
}

.wcbv-form-table tr:last-child {
    border-bottom: none;
}

.wcbv-form-table th {
    font-size: 13px;
    font-weight: 600;
    color: #1d2327;
    padding: 16px 20px 16px 0;
    width: 200px;
    vertical-align: top;
    text-align: left;
}

.wcbv-form-table th small {
    display: block;
    font-size: 11.5px;
    font-weight: 400;
    color: #646970;
    margin-top: 3px;
    line-height: 1.5;
}

.wcbv-form-table td {
    padding: 16px 0;
    vertical-align: top;
}

.wcbv-input-prefix {
    display: inline-flex;
    align-items: center;
}

.wcbv-input-prefix span {
    font-size: 13px;
    color: #646970;
    font-weight: 500;
    margin-right: 4px;
}

.wcbv-form-table td input[type="text"] {
    width: 100%;
    max-width: 320px;
    font-size: 13px !important;
    padding: 8px 10px !important;
    border-radius: 6px !important;
    border: 1.5px solid #c3c4c7 !important;
    height: 36px;
}

.wcbv-input-suffix {
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.wcbv-input-suffix input[type="text"] {
    border-radius: 6px 0 0 6px !important;
}

.wcbv-suffix-label {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 10px;
    background: #f6f7f7;
    border: 1.5px solid #c3c4c7;
    border-left: none;
    border-radius: 0 6px 6px 0;
    font-size: 13px;
    color: #646970;
    font-weight: 500;
}

.wcbv-field-desc {
    font-size: 11.5px;
    color: #646970;
    line-height: 1.6;
    margin-top: 5px;
    display: block;
}

/* Submit row */
.wcbv-form-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 4px;
}

/* ---- Override WP button-primary with brand colours -------- */
.wcbv-wrap .button-primary,
.wcbv-wrap .button-primary:visited {
    background: #2563EB !important;
    border-color: #1D4ED8 !important;
    color: #fff !important;
    text-shadow: none !important;
    box-shadow: none !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 0 18px !important;
    height: 36px !important;
    line-height: 36px !important;
}

.wcbv-wrap .button-primary:hover,
.wcbv-wrap .button-primary:focus {
    background: #1D4ED8 !important;
    border-color: #1E40AF !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px rgba(37,99,235,.25) !important;
    text-shadow: none !important;
}

/* ---- Shortcode callout ------------------------------------ */
.wcbv-shortcode-box {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #f6f7f7;
    border: 1px solid #e2e4e7;
    border-radius: 6px;
    padding: 14px 16px;
    margin: 0;
}

.wcbv-shortcode-box__icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    background: #EFF6FF;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2563EB;
}

.wcbv-shortcode-box__icon .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
}

.wcbv-shortcode-box__text {
    font-size: 13px;
    color: #3c434a;
    line-height: 1.6;
}

.wcbv-shortcode-box__text code {
    font-size: 12px;
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 4px;
    padding: 1px 6px;
    color: #2563EB;
    font-family: 'Courier New', monospace;
}

/* ---- Sidebar quick-links ---------------------------------- */
.wcbv-quicklinks {
    padding: 4px 0;
}

.wcbv-quicklink-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 16px;
    font-size: 13px;
    color: #3c434a;
    text-decoration: none;
    border-bottom: 1px solid #f6f7f7;
    transition: background .1s, color .1s;
}

.wcbv-quicklink-row:last-child {
    border-bottom: none;
}

.wcbv-quicklink-row:hover {
    background: #f9f9fb;
    color: #2563EB;
}

.wcbv-quicklink-row svg {
    color: #8c8f94;
    flex-shrink: 0;
    transition: color .1s;
}

.wcbv-quicklink-row:hover svg {
    color: #2563EB;
}

/* ---- Page footer ------------------------------------------ */
.wcbv-page-footer {
    margin-top: 2.5rem;
    padding: 1.75rem 0 1rem;
    border-top: 1px solid #e2e4e7;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
}

.wcbv-page-footer__brand {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #8c8f94;
    font-weight: 500;
}

.wcbv-page-footer__heart {
    width: 14px;
    height: 14px;
    color: #2563EB;
    flex-shrink: 0;
    position: relative;
    top: -1px;
}

.wcbv-page-footer__links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
}

.wcbv-page-footer__links a {
    font-size: 12px;
    color: #8c8f94;
    text-decoration: none;
    padding: 2px 4px;
    transition: color .15s;
}

.wcbv-page-footer__links a:hover {
    color: #2563EB;
    text-decoration: none;
}

.wcbv-page-footer__sep {
    font-size: 12px;
    color: #c3c4c7;
}

.wcbv-page-footer__social {
    display: flex;
    align-items: center;
    gap: 18px;
}

.wcbv-page-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c3c4c7;
    transition: color .15s;
    text-decoration: none;
}

.wcbv-page-footer__social-link:hover {
    color: #2563EB;
}

.wcbv-page-footer__social-link svg {
    width: 18px;
    height: 18px;
}

/* =============================================================
   RESPONSIVE — tablet and mobile
   ============================================================= */

/* Tablet: collapse sidebar below main at ~700px */
@media screen and (max-width: 700px) {

    .wcbv-wrap {
        padding: 0 4px;
    }

    /* Stack layout to single column, sidebar moves below */
    .wcbv-layout {
        grid-template-columns: 1fr;
    }

    /* Topbar: stack brand + links vertically */
    .wcbv-topbar {
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px 14px;
    }

    .wcbv-topbar-name {
        font-size: 14px;
    }

    .wcbv-version-badge {
        display: none;
    }

    /* Form table: stack th/td vertically */
    .wcbv-form-table,
    .wcbv-form-table tbody,
    .wcbv-form-table tr,
    .wcbv-form-table th,
    .wcbv-form-table td {
        display: block;
        width: 100%;
    }

    .wcbv-form-table th {
        padding: 14px 0 4px;
        width: 100%;
    }

    .wcbv-form-table td {
        padding: 0 0 14px;
    }

    .wcbv-form-table td input[type="text"] {
        max-width: 100%;
    }

    .wcbv-input-suffix {
        width: 100%;
    }

    .wcbv-input-suffix input[type="text"] {
        flex: 1;
        width: 100%;
    }

    .wcbv-input-prefix {
        width: 100%;
    }

    .wcbv-input-prefix input[type="text"] {
        flex: 1;
    }

    /* Full-width submit button */
    .wcbv-wrap .button-primary {
        width: 100% !important;
        text-align: center !important;
    }

    .wcbv-form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    /* Card body padding tighter on small screens */
    .wcbv-card-body {
        padding: 14px;
    }

    /* Footer: tighten up */
    .wcbv-page-footer {
        padding: 1.25rem 0 .75rem;
        gap: 10px;
    }
}
