/* BULLETPROOF Edge Protection - Maximum Specificity */

/* Global overflow protection - Maximum specificity */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
}

html body,
body html {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

/* Container protection */
html body .container,
html body .container-fluid,
html body .wrapper {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Force all sections to respect boundaries */
html body main > section,
html body section {
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

/* Prevent absolute positioned elements from breaking out */
html body .absolute,
html body [class*="absolute"] {
    max-width: calc(100vw - 2rem) !important;
}

/* Grid and flex protection */
html body .grid,
html body .flex,
html body [class*="grid"],
html body [class*="flex"] {
    max-width: 100% !important;
}

/* Image protection */
html body img {
    max-width: 100% !important;
    height: auto !important;
}

/* Table protection */
html body table {
    max-width: 100% !important;
    overflow-x: auto !important;
}

/* Code block protection */
html body pre,
html body code {
    max-width: 100% !important;
    overflow-x: auto !important;
    word-wrap: break-word !important;
}

/* Form element protection */
html body input,
html body textarea,
html body select {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Ensure nothing escapes on any screen size */
* {
    max-width: 100vw !important;
}

html body > *:not(script):not(style):not(noscript) {
    max-width: 100vw !important;
}
