:root {
    --font-family-system: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    --font-family-monospace: 'JetBrains Mono', ui-monospace, 'Roboto Mono', SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    --font-family-base: var(--font-family-system);
    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-md: 16px;
    --font-size-lg: 24px;
    --line-height-xs: 1.25;
    --line-height-sm: 1.4;
    --line-height-md: 1.55;
    --border-radius-sm: 2px;
    --border-radius-md: 4px;
    --border-radius-lg: 10px;
    --margin-md: 1.5rem;
    --prose-max-width: 800px;

    /* variables below depend on the page theme, so you must define them for "dark theme" too */
    --page-background: var(--white);
    --header-background: var(--gray-50);
    --offcanvas-button-border-color: var(--gray-300);
    --offcanvas-button-color: var(--gray-600);
    --offcanvas-menu-border-color: var(--gray-200);
    --offcanvas-menu-hover-background: var(--gray-100);
    --offcanvas-menu-active-background: var(--gray-200);
    --main-menu-background: var(--gray-100);
    --main-menu-color: var(--gray-700);
    --footer-top-background: var(--gray-200);
    --footer-bottom-background: var(--gray-800);
    --footer-top-color: var(--gray-600);
    --footer-bottom-color: var(--gray-200);
    --header-toggler-border-color: var(--gray-400);
    --header-toggler-color: var(--gray-500);
    --header-submenu-bg: var(--white);
    --header-submenu-border-color: var(--gray-200);
    --header-menu-icon-color: var(--gray-400);
    --header-menu-hover-bg: var(--gray-100);
    --header-menu-hover-color: var(--link-color);
    --footer-background: var(--gray-800);
    --footer-color: var(--gray-400);
    --footer-link-color: var(--blue-300);
    --footer-top-shadow: inset 0px 2px 0px var(--gray-100);
    --footer-contributor-details-background: var(--white);
    --footer-icon-color: var(--gray-400);
    --text-color: var(--gray-800);
    --text-muted-color: var(--gray-500);
    --text-danger-color: var(--rose-600);
    --link-color: var(--blue-600);
    --prose-link-color: var(--blue-800);
    --link-border-color: var(--gray-300);
    --button-blue-background: var(--link-color);
    --button-blue-color: var(--white);
    --list-marker-color: var(--gray-400);
    --toctree-rule-border-color: var(--gray-100);
    --code-background: var(--gray-100);
    --admonition-border-color: var(--gray-300);
    --admonition-title-color: var(--gray-500);
    --admonition-icon-background: var(--gray-200);
    --admonition-icon-color: var(--gray-500);
    --admonition-code-background: rgba(27, 31, 35, 0.05);
    --admonition-danger-border-color: var(--rose-400);
    --admonition-danger-title-color: var(--rose-500);
    --admonition-danger-icon-color: var(--white);
    --admonition-danger-icon-background: var(--rose-500);
    --admonition-tip-border-color: var(--emerald-400);
    --admonition-tip-title-color: var(--emerald-500);
    --admonition-tip-icon-color: var(--white);
    --admonition-tip-icon-background: var(--emerald-500);
    --admonition-warning-border-color: var(--amber-400);
    --admonition-warning-title-color: var(--amber-500);
    --admonition-warning-icon-color: var(--white);
    --admonition-warning-icon-background: var(--amber-500);
    --admonition-screencast-border-color: var(--sky-400);
    --admonition-screencast-title-color: var(--sky-500);
    --admonition-screencast-icon-color: var(--white);
    --admonition-screencast-icon-background: var(--sky-500);
    --admonition-versionadded-border-color: var(--gray-300);
    --admonition-versionadded-title-background: var(--gray-200);
    --box-border-color: var(--gray-300);
    --box-secondary-bg: var(--gray-100);
    --card-border-color: var(--gray-200);
    --table-border-color: var(--gray-200);
    --table-header-background: var(--gray-100);
    --listgroup-border-color: var(--gray-300);
    --listgroup-hover-background-color: var(--gray-50);
    --image-browser-decoration-background: var(--gray-300);
    --image-browser-decoration-address-bar-background: var(--gray-50);
    --image-browser-decoration-image-border-color: var(--gray-100);
    --ui-hero-link-color: var(--blue-400);
    --ui-hero-link-border-color: var(--gray-200);
}

.dark-theme {
    --page-background: var(--gray-800);

    --header-background: var(--gray-800);
    --offcanvas-button-border-color: var(--gray-500);
    --offcanvas-button-color: var(--gray-300);
    --offcanvas-menu-border-color: var(--gray-600);
    --offcanvas-menu-hover-background: var(--gray-600);
    --offcanvas-menu-active-background: var(--gray-600);
    --main-menu-background: var(--gray-700);
    --main-menu-color: var(--gray-200);
    --footer-top-background: var(--gray-900);
    --footer-bottom-background: var(--gray-900);
    --footer-top-color: var(--gray-200);
    --footer-bottom-color: var(--gray-300);
    --header-toggler-border-color: var(--gray-500);
    --header-toggler-color: var(--gray-400);
    --header-submenu-bg: var(--gray-700);
    --header-submenu-border-color: var(--gray-600);
    --header-menu-icon-color: var(--gray-400);
    --header-menu-hover-bg: var(--gray-600);
    --header-menu-hover-color: var(--link-color);
    --footer-background: var(--gray-900);
    --footer-color: var(--gray-400);
    --footer-link-color: var(--blue-300);
    --footer-top-shadow: 0px 0px 0 2px var(--gray-700);
    --footer-bottom-shadow: 0px 0px 0 1px var(--gray-800);
    --footer-contributor-details-background: var(--gray-800);
    --text-color: var(--gray-300);
    --text-muted-color: var(--gray-400);
    --text-danger-color: var(--rose-400);
    --link-color: var(--blue-300);
    --prose-link-color: var(--blue-300);
    --link-border-color: var(--gray-600);
    --button-blue-background: var(--link-color);
    --button-blue-color: var(--gray-900);
    --list-marker-color: var(--gray-500);
    --toctree-rule-border-color: var(--gray-700);
    --code-background: rgba(249, 250, 251, 0.06);
    --admonition-border-color: var(--gray-500);
    --admonition-title-color: var(--gray-400);
    --admonition-icon-background: var(--gray-700);
    --admonition-icon-color: var(--gray-300);
    --admonition-code-background: rgba(240, 246, 252, 0.1);
    --admonition-danger-border-color: var(--rose-600);
    --admonition-danger-title-color: var(--rose-500);
    --admonition-danger-icon-color: var(--gray-300);
    --admonition-danger-icon-background: var(--rose-700);
    --admonition-tip-border-color: var(--emerald-600);
    --admonition-tip-title-color: var(--emerald-500);
    --admonition-tip-icon-color: var(--gray-300);
    --admonition-tip-icon-background: var(--emerald-700);
    --admonition-warning-border-color: var(--amber-600);
    --admonition-warning-title-color: var(--amber-500);
    --admonition-warning-icon-color: var(--gray-300);
    --admonition-warning-icon-background: var(--amber-700);
    --admonition-screencast-border-color: var(--sky-400);
    --admonition-screencast-title-color: var(--sky-400);
    --admonition-screencast-icon-color: var(--gray-300);
    --admonition-screencast-icon-background: var(--sky-600);
    --admonition-versionadded-border-color: var(--gray-600);
    --admonition-versionadded-title-background: var(--gray-700);
    --box-border-color: var(--gray-600);
    --box-secondary-bg: var(--gray-700);
    --card-border-color: var(--gray-600);
    --table-border-color: var(--gray-600);
    --table-header-background: var(--gray-700);
    --listgroup-border-color: var(--gray-500);
    --listgroup-hover-background-color: var(--gray-800);
    --image-browser-decoration-background: var(--gray-700);
    --image-browser-decoration-address-bar-background: var(--gray-800);
    --image-browser-decoration-image-border-color: var(--gray-700);
    --ui-hero-link-color: var(--blue-400);
    --ui-hero-link-border-color: var(--gray-500);
}

/* custom reset/normalize CSS styles based on https://github.com/tailwindlabs/tailwindcss/blob/next/packages/tailwindcss/preflight.css */
a,
hr {
    color: inherit;
}
progress,
sub,
sup {
    vertical-align: baseline;
}
blockquote,
body,
dd,
dl,
fieldset,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
menu,
ol,
p,
pre,
ul {
    margin: 0;
}
dialog,
fieldset,
legend,
menu,
ol,
ul {
    padding: 0;
}
:host,
html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    -webkit-tap-highlight-color: transparent;
}
hr {
    height: 0;
    border-top-width: 1px;
}
abbr:where([title]) {
    text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
}
a {
    text-decoration: inherit;
}
b,
strong {
    font-weight: bolder;
}
code,
kbd,
pre,
samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
}
sub {
    bottom: -.25em;
}
sup {
    top: -.5em;
}
table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    margin: 0;
    padding: 0;
}
button,
select {
    text-transform: none;
}
button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}
:-moz-focusring {
    outline: auto;
}
:-moz-ui-invalid {
    box-shadow: none;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}
[type='search'] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
::-webkit-search-decoration {
    -webkit-appearance: none;
}
::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}
summary {
    display: list-item;
}
menu,
ol,
ul {
    list-style: none;
}
textarea {
    resize: vertical;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
}
[role='button'],
button {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
[hidden] {
    display: none;
}

.show-on-focus {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
}
.show-on-focus:focus {
    z-index: 999;
    width: auto;
    height: auto;
    clip: auto;
    outline: 1px dashed white;
    outline-offset: -3px;
}

.skip-to-content,
.skip-to-content:hover {
    background: var(--blue-600);
    color: var(--white);
    padding: 10px 20px;
}

.dark-theme .modal {
    --bs-modal-color: var(--text-color);
    --bs-modal-bg: var(--gray-800);
    --bs-modal-header-border-color: var(--gray-700);
}

/* needed for doc pages that start with an <h2> element (because the <h1> page title is displayed separately) */
.page-content .content > h2:first-child,
.page-content .content > section:first-child > h2:first-child {
    margin-top: 0;
}

.box {
    border: 1px solid var(--box-border-color);
    border-radius: 5px;
    padding: 15px;
    margin: var(--margin-md) 0 var(--margin-md);
}
/* note: the !important modifier is needed here */
.box > :first-child {
    margin-top: 0 !important;
}
.box > :last-child {
    margin-bottom: 0 !important;
}
@media (min-width: 992px) {
    .box {
        border-radius: 10px;
        padding: 30px;
    }
}

.box.box-secondary {
    background: var(--box-secondary-bg);
    border-color: transparent;
}
.box.box-empty {
    border-style: dashed;
}
@media (min-width: 992px) {
    .box.box-sm {
        padding: 15px 30px;
    }
}

header {
    background: var(--page-background);
}
header .container-fluid {
    flex: 1;
    justify-content: space-between;
}

header .navbar-brand {
    flex: 1;
}
.dark-theme header .navbar-brand {
    filter: invert(1);
}

header .navbar-brand h1 {
    margin: 0;
}
header .navbar-brand svg {
    display: block;
    height: 28px;
    width: 110px;
}

header .navbar-toggler {
    border: 1px solid var(--header-toggler-border-color);
    border-radius: var(--border-radius-md);
    color: var(--header-toggler-color);
    padding: 5px 10px;
}
header .navbar-toggler:focus {
    box-shadow: none;
    outline: 1px solid var(--link-color);
}

header .navbar-toggler svg {
    display: block;
    stroke-width: 2.5;
    height: 21px;
    width: 21px;
}

header .offcanvas {
    background: var(--gray-800);
    color: var(--gray-100);
}
header .offcanvas .offcanvas-header .btn-close {
    background: var(--gray-600);
    border-radius: var(--border-radius-md);
    color: var(--gray-200);
    line-height: 1;
    opacity: 1;
    padding: 7px 10px;
    width: auto;
}

header .offcanvas .offcanvas-body {
    padding-top: 0;
}

header .offcanvas .offcanvas-body #sensiolabs-highlight-responsive-menu {
    position: relative; /* needed for the stretched link */
}
header .offcanvas .offcanvas-body #sensiolabs-highlight-responsive-menu {
    margin-bottom: 10px;
}
header .offcanvas .offcanvas-body #sensiolabs-highlight-responsive-menu svg {
    position: relative;
    top: -2px;
}
header .offcanvas .offcanvas-body #sensiolabs-highlight-responsive-menu svg .sl-logo-header-sensio {
    fill: #eee;
}

header .navbar-nav .nav-header {
    color: var(--blue-300);
    display: block;
    font-size: var(--font-size-sm);
    font-weight: bold;
    line-height: 1;
    padding: 6px 6px 4px 2px;
    text-transform: uppercase;
}

header .navbar-nav li .nav-link {
    color: var(--gray-100);
    display: block;
}

header .navbar-nav .submenu ul {
    margin: 0 0 12px;
    padding: 0;
}

header .navbar-nav .submenu li {
    list-style: none;
}
header .navbar-nav .submenu li a {
    padding: 6px 6px 6px 2px;
}
header .navbar-nav .submenu li .nav-link-icon {
    display: none;
}

header .navbar-nav .submenu li + li {
    border-top: 1px solid var(--gray-500);
}

header .navbar-nav .nav-link-description {
    color: var(--gray-400);
    display: block;
    font-size: var(--font-size-sm);
    margin-top: -4px;
    padding: 0 6px 10px 2px;
}

header .navbar-nav .nav-item-standalone + .nav-item-standalone {
    border-top: 1px solid var(--gray-500);
}

header .navbar-nav .nav-item-standalone a {
    padding: 6px 6px 6px 2px;
}

@media (min-width: 992px) {
    header .navbar {
        --bs-navbar-padding-y: 15px;
    }

    header .navbar-brand svg {
        height: 36px;
        width: 142px;
    }

    /* close all other submenus when a submenu is displayed (needed because of Bootstrap's default behavior) */
    .navbar-nav .nav-item:not(:hover) .submenu {
        display: none !important;
    }
    .navbar-nav .nav-item:hover .submenu {
        display: block !important;
    }

    header .navbar-expand-lg .navbar-nav .nav-header,
    header .navbar-expand-lg .navbar-nav .nav-item-standalone .nav-link {
        color: var(--text-color);
        font-size: 17px;
        font-weight: normal;
        line-height: inherit;
        padding: 0;
        text-transform: none;
    }
    @media (min-width: 1200px) {
        header .navbar-expand-lg .navbar-nav .nav-header,
        header .navbar-expand-lg .navbar-nav .nav-item-standalone .nav-link {
            font-size: 18px;
        }
    }

    /* only display a pointer cursor for clickable links, not for the parent items of dropdowns */
    header .navbar-expand-lg .navbar-nav span.nav-header {
        cursor: default;
    }
    header .navbar-expand-lg .navbar-nav a.nav-link {
        cursor: pointer;
    }

    header .navbar-expand-lg .navbar-nav .nav-item-standalone + .nav-item-standalone {
        border-top: 0;
    }

    header .navbar-expand-lg .navbar-nav .nav-link {
        color: var(--text-color);
        cursor: pointer;
    }
    header .navbar-expand-lg .navbar-nav .nav-link:hover {
        color: var(--header-menu-hover-color);
    }

    header .navbar-expand-lg .navbar-nav > li {
        padding: 10px;
        position: relative;
    }
    @media (min-width: 1200px) {
        header .navbar-expand-lg .navbar-nav > li {
            padding: 10px 20px;
        }
    }

    header .navbar-expand-lg .navbar-nav > li:hover > .submenu,
    header .navbar-expand-lg .navbar-nav > li:focus-within > .submenu {
        display: block;
    }

    header .navbar-expand-lg .navbar-nav .submenu {
        background: var(--header-submenu-bg);
        border: 1px solid var(--header-submenu-border-color);
        border-radius: var(--border-radius-md);
        box-shadow: 0 20px 25px -5px rgb(0 0 0 / 30%), 0 8px 10px -6px rgb(0 0 0 / 20%);
        display: none;
        position: absolute;
        left: -15px;
        top: 44px;
        z-index: 9999;
        min-width: max-content;
    }

    header .navbar-expand-lg .navbar-nav .submenu ul {
        margin: 0 !important;
        padding: 5px;
    }
    header .navbar-expand-lg .navbar-nav .submenu li {
        padding: 8px 15px 8px 10px;
        position: relative;
        min-width: 220px;
        white-space: nowrap;
    }
    header .navbar-expand-lg .navbar-nav .submenu li + li {
        border-top: 0;
    }
    header .navbar-expand-lg .navbar-nav .submenu li .nav-link {
        padding: 0;
    }
    header .navbar-expand-lg .navbar-nav .submenu li .nav-link::after {
        /* this creates a stretched-link */
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        content: '';
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-with-icon {
        align-items: center;
        border-radius: var(--border-radius-md);
        display: flex;
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-with-icon:hover {
        background: var(--header-menu-hover-bg);
        color: var(--header-menu-hover-color);
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-with-icon:hover svg {
        color: var(--header-menu-hover-color);
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-icon {
        color: var(--header-menu-icon-color);
        display: inline-flex;
        flex-shrink: 0;
        margin-right: 10px;
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-icon svg {
        font-size: 24px; /* needed because SVG icons use 1em width/height */
    }
    header .navbar-expand-lg .navbar-nav .submenu .nav-link-description {
        color: var(--text-muted-color);
        margin-top: -2px;
        padding: 0;
    }

    header .navbar-expand-lg .navbar-nav .menu-services .submenu .nav-link-icon {
        margin-right: 15px;
    }

    header .sensiolabs .byline {
        color: var(--ui-text-secondary-color);
        display: block;
        font-size: 12px;
        line-height: 1;
    }
}

@media (min-width: 992px) {
    aside .sticky-contents {
        display: block;
        position: sticky;
        top: 20px;
    }
}

@media (min-width: 992px) {
    aside .highlights {
        margin-top: 10px;
    }

    aside .highlights .carbon-poweredby {
        display: block;
    }
    aside .highlights .highlight-carbon,
    aside .highlights .highlight-symfony {
        margin: 0;
        text-align: left;
    }
    aside .highlights .carbon-text {
        margin-bottom: 8px;
    }
    aside .highlights .carbon-text,
    aside .highlights .highlight-symfony-text {
        -webkit-line-clamp: unset;
    }
}

aside .highlight-hidden {
    display: none;
}
@media (min-width: 992px) {
    aside .highlight-hidden {
        display: block;
    }
}

.admonition {
    border-radius: 0.375rem;
    border: 2px solid var(--admonition-border-color);
    margin-bottom: var(--margin-md);
    padding: 12px;
    position: relative;
}
/* this happens e.g. when a "Tip" contains a "New in ... version" inside it */
.admonition .admonition {
    border-color: inherit;
}

.admonition p.admonition-title {
    color: var(--admonition-title-color);
    font-weight: 600;
    margin-bottom: 4px;
}
.admonition .admonition-title svg {
    display: none;
}
.admonition .admonition-title code {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.admonition > *:last-child {
    margin-bottom: 0 !important;
}
.admonition code {
    background: var(--admonition-code-background);
}
.admonition .codeblock,
.admonition .codeblock-length-sm {
    margin-left: 0;
}

.admonition.admonition-versionadded,
.admonition.admonition-deprecated {
    border-color: var(--admonition-versionadded-border-color);
    border-width: 1px;
    display: flex;
    font-size: var(--font-size-sm);
    padding: 6px;
}
.admonition.admonition-versionadded code,
.admonition.admonition-deprecated code {
    font-size: 13px;
}

.admonition.admonition-versionadded .admonition-title,
.admonition.admonition-deprecated .admonition-title {
    flex-shrink: 0;
    margin: 0 6px 0 0;
}
.admonition.admonition-versionadded .admonition-title span,
.admonition.admonition-deprecated p.admonition-title span {
    background: var(--admonition-versionadded-title-background);
    border-radius: var(--border-radius-md);
    color: var(--text-color);
    display: inline-block;
    font-weight: 600;
    line-height: 1;
    padding: 4px 6px;
}

@media (min-width: 1200px) {
    .admonition {
        padding-left: 64px;
    }
    .admonition.admonition-sidebar {
        padding: 30px;
    }

    .admonition p.admonition-title {
        margin-bottom: 0 !important;
    }
    .admonition .admonition-title span {
        display: none;
    }

    .admonition .admonition-title svg {
        background: var(--admonition-icon-background);
        border-radius: 5px;
        display: inline-block;
        padding: 6px;
        position: absolute;
        top: 6px;
        left: 6px;
        height: 36px;
        width: 36px;
    }
    .admonition .admonition-title svg path {
        stroke: var(--admonition-icon-color);
    }

    .admonition.admonition-note .admonition-title svg {
        padding: 6px;
    }

    .admonition .codeblock {
        margin-left: -21px;
    }
    .admonition .codeblock.codeblock-length-md {
        margin-left: -30px;
    }
    .admonition.admonition-sidebar .codeblock,
    .admonition.admonition-sidebar .codeblock.codeblock-length-md {
        margin-left: 0;
    }
}

.admonition-tip,
.admonition-hint {
    border-color: var(--admonition-tip-border-color);
}
.admonition-tip .admonition-title,
.admonition-hint .admonition-title {
    color: var(--admonition-tip-title-color);
}

.admonition-tip .admonition-title svg,
.admonition-hint .admonition-title svg {
    background: var(--admonition-tip-icon-background);
}
.admonition-tip .admonition-title svg path,
.admonition-hint .admonition-title svg path {
    stroke: var(--admonition-tip-icon-color);
}
.admonition-important,
.admonition-warning,
.admonition-caution {
    border-color: var(--admonition-warning-border-color);
}
:is(.admonition-important, .admonition-warning, .admonition-caution) .admonition-title {
    color: var(--admonition-warning-title-color);
}
:is(.admonition-important, .admonition-warning, .admonition-caution) .admonition-title svg {
    background: var(--admonition-warning-icon-background);
}
:is(.admonition-important, .admonition-warning, .admonition-caution) .admonition-title svg path {
    stroke: var(--admonition-warning-icon-color);
}
.admonition-danger {
    border-color: var(--admonition-danger-border-color);
}
.admonition-danger p.admonition-title {
    color: var(--admonition-danger-title-color);
}
.admonition-danger .admonition-title svg {
    background: var(--admonition-danger-icon-background);
}
.admonition-danger .admonition-title svg path {
    stroke: var(--admonition-danger-icon-color);
}
.admonition-screencast {
    border-color: var(--admonition-screencast-border-color);
}
.admonition-screencast p.admonition-title {
    color: var(--admonition-screencast-title-color);
}
.admonition-screencast p.admonition-title svg {
    background: var(--admonition-screencast-icon-background);
}
.admonition-screencast p.admonition-title svg path {
    stroke: var(--admonition-screencast-icon-color);
}
.admonition-sidebar .sidebar-title {
    font-size: 21px;
    font-weight: 600;
    line-height: var(--line-height-xs);
}
@media (min-width: 992px) {
    .admonition-sidebar .sidebar-title {
        font-size: 24px;
    }
}

.admonition-sidebar .sidebar-title code {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
}

/* Footer
   ---------------------------------------------------------------------------- */
footer {
    font-size: var(--font-size-sm);
}
footer .footer-top-wrapper {
    background-color: var(--footer-top-background);
    box-shadow: var(--footer-top-shadow);
    color: var(--footer-top-color);
    padding: 45px 0;
}

footer .footer-bottom-wrapper {
    background-color: var(--footer-bottom-background);
    box-shadow: var(--footer-bottom-shadow);
    color: var(--footer-bottom-color);
    padding: 45px 0;
}

footer .footer-top {
    display: grid;
    grid-gap: 30px;
}
@media (min-width: 992px) {
    footer .footer-top {
        grid-template-columns: 1fr 1fr;
        grid-gap: 60px;
    }
}

footer .ui-sitemap p a {
    color: var(--footer-link-color);
}
footer a {
    color: var(--footer-color);
}
footer a:hover {
    color: var(--footer-link-color);
    text-decoration: underline;
}

footer #color-scheme-switcher {
    appearance: none;
    -webkit-appearance: none;
    background: var(--gray-900) no-repeat
        url(data:image/svg+xml;utf8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iI2NjY2NjYyI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xOSA5bC03IDctNy03IiAvPiA8L3N2Zz4=);
    background-position: calc(100% - 4px) 50%;
    background-size: var(--font-size-md);
    border: 1px solid var(--gray-500);
    border-radius: 5px;
    color: var(--gray-300);
    cursor: pointer;
    font-size: 15px;
    margin-left: 5px;
    outline: none;
    padding: 2px 36px 2px 6px;
}

/* Wraps the image with a fake browser window (adapted from https://codepen.io/adrienjarthon/pen/ogjjoj) */
div.with-browser,
figure.with-browser {
    border: solid var(--image-browser-decoration-background);
    border-width: 35px 5px 5px;
    border-radius: var(--border-radius-md);
    margin-bottom: var(--margin-md);
    position: relative;
}
div.with-browser:before,
figure.with-browser:before {
    background-color: var(--red-500);
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--red-500), 20px 0 0 2px var(--amber-500), 40px 0 0 2px var(--lime-600);
    content: '';
    display: block;
    height: 8px;
    left: 5px;
    opacity: 0.6;
    position: absolute;
    top: -20px;
    width: 8px;
}

div.with-browser:after,
figure.with-browser:after {
    background-color: var(--image-browser-decoration-address-bar-background);
    border-radius: 2px;
    content: '';
    height: 24px;
    right: 0;
    position: absolute;
    top: -29px;
    width: calc(100% - 90px);
}

div.with-browser img,
figure.with-browser img {
    border: 1px inset var(--image-browser-decoration-image-border-color);
    border-radius: 0;
    margin: 0;
}

@media print {
    #sln,
    button.navbar-toggler,
    [data-bs-target='#header-nav-menu'],
    .highlight-top-horizontal,
    aside.sidebar,
    .doc-content-embedded-sidebar,
    footer,
    #doc-mobile-shortcuts-bar,
    a.doc-action {
        display: none !important;
    }

    header {
        background: transparent;
    }

    .content-sidebar-wrapper {
        display: unset;
    }

    html,
    body,
    .doc-content,
    .doc-content .ui-prose {
        display: block !important;
        height: auto !important;
        overflow: visible !important;
        max-width: unset !important;
        min-height: unset !important;
        width: 100% !important;
    }

    img,
    svg,
    p,
    li {
        break-inside: avoid-page;
    }

    a:after,
    a:before {
        background: none !important;
        content: '' !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .admonition-title {
        margin-bottom: 5px !important;
    }

    .table-wrapper {
        display: block !important;
    }
    .ui-prose th {
        position: static !important;
    }

    code {
        background: transparent !important;
        border-radius: 0 !important;
        border-bottom: 0 !important;
        font-weight: bold !important;
        padding: 0 !important;
    }

    ul.configuration-tabs {
        display: none !important;
    }

    .codeblock {
        display: block !important;
    }
    .codeblock .codeblock-lines {
        display: none !important;
    }

    .codeblock .codeblock-code code {
        white-space: pre-wrap;
    }

    .codeblock-terminal {
        background: #f0f0f0 !important;
        border-color: var(--gray-500) !important;
        color: var(--black) !important;
    }
    .codeblock-terminal:before {
        background-color: var(--gray-300) !important;
        box-shadow: 0 0 0 2px var(--gray-300), 20px 0 0 2px var(--gray-300), 40px 0 0 2px var(--gray-300) !important;
        color: var(--gray-300) !important;
    }

    .codeblock-terminal pre.codeblock-code code {
        background: #f00 !important;
        color: var(--black) !important;
    }
    .codeblock-terminal .hljs-keyword,
    .codeblock-terminal .hljs-prompt,
    .codeblock-terminal .hljs-string {
        color: inherit !important;
    }

    .post-comments-list ~ .box.box-secondary {
        display: none !important;
    }

    body::after {
        content: 'Symfony™ is a trademark of Symfony SAS. All rights reserved.';
        color: var(--gray-600);
        font-size: var(--font-size-sm);
        margin: 30px 15px 15px;
        width: 100%;
    }
}

svg.thin-icon g,
svg.thin-icon path {
    stroke-width: 1.5;
}

#carbonads {
    background: transparent !important;
    display: flex;
    overflow: hidden;
    padding: 0 !important;
    max-width: 100% !important;
    font-size: 14px;
    font-family: var(--font-family-system);
    line-height: 1.5;
    margin-bottom: 30px;
}
#carbonads a {
    color: inherit;
    text-decoration: none;
}
#carbonads a:hover {
    color: inherit;
}
#carbonads span {
    display: block;
    overflow: hidden;
}
.carbon-img {
    display: block;
    margin: 0 auto 8px;
    line-height: 1;
}
.carbon-text {
    display: block;
    margin-bottom: 8px;
    text-wrap: balance;
}
.carbon-poweredby {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 10px;
    line-height: 1;
}

.ui-highlights {
    margin-bottom: 30px;
}
.ui-highlight-symfony {
    font-family: var(--font-family-system);
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 1.5em;
    padding-right: 1em;
}
.ui-highlight-symfony .ui-highlight-symfony-text {
    margin: 8px 0 0;
    text-wrap: balance;
}
.ui-highlight-symfony .ui-highlight-symfony-text a:before {
    content: 'AD';
    border: 1px solid;
    border-radius: 4px;
    color: var(--ui-text-secondary);
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    margin: 0 7px 0 0;
    padding: 1px 2px;
}
@media (min-width: 992px) {
    .ui-highlights {
        margin-bottom: 0;
    }
    .ui-highlights .ui-highlight-item {
        margin-bottom: 30px;
    }
    .ui-highlight-symfony .ui-highlight-symfony-text a:before {
        display: none;
    }
}
