/* ============================================================
   PartsZote VIN Lookup — CarMod Widget Overrides
   Version: 2.0.0
   Updated: 2026-02-21

   Restyled to match the header search bar design:
   pill shape, flex row, blue button, theme tokens.
   Scoped under #pzVinWidget to avoid leaking.

   !important audit: 22 uses — all needed to override
   CarMod's /autoparts/add/vinnum/templates/default/styles.css
   which itself uses !important on height, line-height, padding, etc.
   ============================================================ */


/* === Sticky Footer === */

.page-template-page-vin-lookup {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.page-template-page-vin-lookup .pz-main {
    flex: 1;
}


/* === Card wrapper === */

.pz-vin-card {
    background: #fff;
    border: 1px solid var(--pz-gray-200);
    border-radius: var(--pz-r-xl);
    overflow: visible;
    margin-top: 24px;
    padding: 24px;
}


/* === Base Reset === */

#pzVinWidget {
    font-family: var(--pz-font);
    overflow: visible;
    padding-bottom: 20px;
}

#pzVinWidget *,
#pzVinWidget *::before,
#pzVinWidget *::after {
    box-sizing: border-box;
    font-family: inherit;
}

/* Kill CarMod's own stylesheet (loaded via <link> inside widget) */
#pzVinWidget link { display: none; }


/* === Search-bar-style wrapper === */

#pzVinWidget .CmVinNumWrap {
    display: flex !important;
    align-items: center;
    width: 100% !important;
    max-width: 600px;
    height: 48px;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid var(--pz-gray-200) !important;
    border-radius: var(--pz-r-full) !important;
    background: #fff;
    overflow: visible !important;
    position: relative;
    transition: border-color .15s, box-shadow .15s;
}

#pzVinWidget .CmVinNumWrap:focus-within {
    border-color: var(--pz-primary) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .1);
}


/* === Input field (matches header search input) === */

#pzVinWidget input.CmVinNumField {
    flex: 1 !important;
    height: 100% !important;
    min-height: unset !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 16px !important;
    font-size: 16px !important; /* >=16px prevents iOS auto-zoom */
    font-weight: 400 !important;
    color: var(--pz-gray-900) !important;
    text-align: left !important;
    text-transform: none !important;
    line-height: normal !important;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
}

#pzVinWidget input.CmVinNumField::placeholder {
    color: var(--pz-gray-400) !important;
    font-weight: 400 !important;
    font-style: normal !important;
    text-align: left !important;
    text-transform: none !important;
}

#pzVinWidget input.CmVinNumField:disabled {
    color: var(--pz-gray-400) !important;
    background: transparent !important;
}


/* === Search button (matches header search button) === */

#pzVinWidget div.CmVinNumGo {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: 100%;
    min-width: 48px;
    padding: 0 20px !important;
    background: var(--pz-primary);
    border: none;
    border-radius: 0 24px 24px 0;
    cursor: pointer;
    transition: background .15s;
    line-height: normal !important;
}

#pzVinWidget div.CmVinNumGo svg {
    fill: #fff;
    width: 18px;
    height: 18px;
}

@media (hover: hover) {
    #pzVinWidget div.CmVinNumGo:hover {
        background: var(--pz-primary-dark, #1d4ed8);
    }
}


/* === Loading indicator (recolored, centered in bar) === */

#pzVinWidget .CmVinnumLoading {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%);
    z-index: 2;
}

#pzVinWidget .CmLoadVinBl {
    background-color: var(--pz-primary) !important;
}


/* === Results area (breaks out of pill wrapper) === */

#pzVinWidget .CmVinNumClear {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    right: 0 !important;
    white-space: normal !important;
    z-index: 50;
}


/* === Error message === */

#pzVinWidget #CmVinNumFail {
    background: #fef2f2 !important;
    color: #dc2626 !important;
    border: 1px solid #fca5a5 !important;
    border-radius: var(--pz-r-md) !important;
    padding: 12px 16px !important;
    text-align: center;
    box-shadow: none !important;
    line-height: 1.5 !important;
    font-size: 14px;
}


/* === Selection table (status 201 multi-match) === */

#pzVinWidget #CmVinNumTypes {
    background: #fff !important;
    border: 1px solid var(--pz-gray-200);
    border-radius: var(--pz-r-xl);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    overflow: hidden;
}

#pzVinWidget #CmVinNumTypes table {
    width: 100%;
    font-size: 13px !important;
    border: none !important;
    box-shadow: none !important;
    border-collapse: collapse;
}

#pzVinWidget .VinNumTab td {
    white-space: normal;
}

/* Tab headers (manufacturer groups) */
#pzVinWidget .VinNumLit {
    background: var(--pz-gray-50) !important;
    border: none !important;
    border-bottom: 1px solid var(--pz-gray-100) !important;
    padding: 10px 16px !important;
    font-weight: 700;
    color: var(--pz-gray-900);
    cursor: pointer;
    transition: background .15s;
}

@media (hover: hover) {
    #pzVinWidget .VinNumLit:hover {
        background: var(--pz-gray-100) !important;
        color: var(--pz-gray-900) !important;
    }
}

#pzVinWidget .VinNumLitActive {
    background: var(--pz-primary) !important;
    color: #fff !important;
}

/* Model info rows */
#pzVinWidget .VinNumModel td {
    padding: 10px 16px !important;
    color: var(--pz-gray-700);
    border-bottom: 1px solid var(--pz-gray-50);
}

/* Selectable vehicle type links */
#pzVinWidget .VinNumType a {
    display: block;
    padding: 10px 16px 10px 24px !important;
    color: var(--pz-gray-900) !important;
    background: #fff !important;
    text-decoration: none !important;
    transition: background .15s;
}

@media (hover: hover) {
    #pzVinWidget .VinNumType a:hover {
        background: var(--pz-gray-50) !important;
        text-decoration: none !important;
    }
}

/* Vehicle detail spans in results */
#pzVinWidget .RnManuf { color: var(--pz-gray-500); }
#pzVinWidget .RnModel { font-weight: 700; color: var(--pz-gray-900); }
#pzVinWidget .RnType  { font-weight: 700; color: var(--pz-gray-900); }
#pzVinWidget .RnVDS   { color: var(--pz-gray-400); font-size: 11px; }
#pzVinWidget .RnModInfo { color: var(--pz-gray-500); font-size: 12px; }
#pzVinWidget .RnEngine  { color: var(--pz-gray-700); }
#pzVinWidget .RnEngType { color: var(--pz-gray-500); }
#pzVinWidget .RnYears   { color: var(--pz-gray-500); font-style: italic; }
#pzVinWidget .RnDrive   { color: var(--pz-gray-500); }
#pzVinWidget .RnKwHp    { color: var(--pz-gray-400); }
#pzVinWidget .RnKwHp b  { color: var(--pz-gray-600); }

/* Close button */
#pzVinWidget #VinNumClose {
    display: block;
    width: 100%;
    background: var(--pz-gray-50) !important;
    color: var(--pz-gray-500) !important;
    text-shadow: none !important;
    border: none;
    border-top: 1px solid var(--pz-gray-100);
    padding: 10px !important;
    text-align: center;
    cursor: pointer;
    font-size: 13px !important;
    transition: background .15s, color .15s;
}

@media (hover: hover) {
    #pzVinWidget #VinNumClose:hover {
        background: var(--pz-gray-100) !important;
        color: var(--pz-gray-900) !important;
    }
}


/* === Links (general) === */

#pzVinWidget a {
    color: var(--pz-primary);
    text-decoration: none;
    transition: color .15s;
}


/* === Images === */

#pzVinWidget img {
    max-width: 100%;
    height: auto;
    border-radius: var(--pz-r-md);
}


/* === Responsive: Mobile (<=480px) === */

@media (max-width: 480px) {
    .pz-vin-card { padding: 16px; }

    #pzVinWidget .CmVinNumWrap {
        height: 44px;
    }

    #pzVinWidget input.CmVinNumField {
        padding: 0 12px !important;
        font-size: 14px !important;
    }

    #pzVinWidget div.CmVinNumGo {
        min-width: 44px;
        padding: 0 14px !important;
    }

    #pzVinWidget #CmVinNumTypes table {
        font-size: 12px !important;
    }

    #pzVinWidget .VinNumType a {
        padding: 8px 12px 8px 16px !important;
    }
}


/* === Responsive: Desktop (>=960px) === */

@media (min-width: 960px) {
    #pzVinWidget input.CmVinNumField {
        font-size: 15px !important;
    }

    #pzVinWidget .CmVinNumWrap {
        max-width: 600px;
    }
}


/* === Accessibility: Forced Colors (Windows High Contrast) === */

@media (forced-colors: active) {
    #pzVinWidget .CmVinNumWrap {
        border: 2px solid ButtonText !important;
    }

    #pzVinWidget .CmVinNumWrap:focus-within {
        outline: 2px solid Highlight;
    }

    #pzVinWidget div.CmVinNumGo {
        forced-color-adjust: none;
        background: Highlight;
        color: HighlightText;
    }

    #pzVinWidget div.CmVinNumGo svg {
        fill: HighlightText;
    }
}
