@charset "UTF-8";
/* admin.css - BUILD DE REPLI : Bootstrap 5.3.3 dist (resources/vendor) + resources/css/theme-fallback.css + resources/css/admin-fallback.css, genere le 2026-10-02 06:19 par scripts/build-css.ps1 -Fallback -Target admin. Fichier genere : ne pas modifier a la main. Chaine Sass : docs/INSTALLATION.md. */
/*!
 * Bootstrap  v5.3.3 (https://getbootstrap.com/)
 * Copyright 2011-2024 The Bootstrap Authors
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}
/*# sourceMappingURL=bootstrap.min.css.map */
/* =============================================================================
 * theme-fallback.css — thème Ingenia en CSS pur (lot 00).
 *
 * Utilisé par le build de repli (scripts/build-css.ps1 -Fallback) : concaténé
 * APRÈS resources/vendor/bootstrap-5.3.3-dist/css/bootstrap.min.css dans
 * public/assets/css/app.css. Il doit produire le même résultat visuel que la
 * compilation Sass (resources/scss/app.scss + theme/_*.scss) : jetons
 * identiques (docs/ARCHITECTURE.md §6.2), mêmes composants im-*.
 *
 * Structure : 1. jetons et variables Bootstrap, 2. base, 3. composants,
 *             4. utilitaires — miroir de theme/_variables, _base, _components,
 *             _utilities.
 * ============================================================================= */

/* --- 1. Jetons Ingenia et surcharge des variables Bootstrap ------------------ */
:root {
  --im-ink: #1a1c20;
  --im-paper: #f7f6f2;
  --im-accent: #1f4e79;
  --im-accent-dark: #163a5a;
  --im-muted: #585d66;
  --im-line: #d8d5ce;
  --im-prose-width: 68ch;
  /* --- NOUVEAU (évolution visuelle, 2026-09-29, demande de Michael) --- jetons de surface et de
     mouvement : voile d'accent (fond seulement, jamais du texte dessus), deux rayons, une courbe amortie,
     une durée courte et, depuis la seconde version, trois marches d'affichage (plus d'ombre). Miroir de theme/_variables.scss et _base.scss. */
  --im-accent-soft: #e6edf4;
  /* --- CONSERVÉ (évolution visuelle, 2026-09-29, première version) --- --im-radius: .75rem;
     --im-radius-sm: .5rem; --im-shadow-sm: 0 1px 2px rgba(26, 28, 32, .06), 0 1px 1px rgba(26, 28, 32, .04);
     --im-shadow-md: 0 12px 32px -14px rgba(26, 28, 32, .22), 0 2px 6px rgba(26, 28, 32, .06);
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version : « c'est trop le style Claude ») ---
     plus aucune ombre ; angle franc d'un rem ; et trois marches d'affichage au-dessus de l'échelle
     de la section 6 : titre d'ouverture (40 → 72 px), titre de page (34 → 56 px), titre de section
     (28 → 44 px). Mêmes valeurs dans theme/_variables.scss, _base.scss et le CSS critique. */
  --im-radius: 1rem;
  --im-radius-sm: .625rem;
  --im-ease: cubic-bezier(.2, .7, .2, 1);
  --im-dur: .22s;
  --im-fs-display: clamp(2.5rem, 1.55rem + 4.2vw, 4.5rem);
  --im-fs-display-sm: clamp(2.125rem, 1.4rem + 3.2vw, 3.5rem);
  --im-fs-title: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
  /* --- NOUVEAU (évolution visuelle, 2026-09-29, troisième version) --- accent clair pour les
     à-plats sombres : surtitres et survols sur encre (#8fb4d8 sur #1a1c20 : 7,8:1). L'accent
     lui-même n'y contraste qu'à 1,97:1. Même valeur dans _variables.scss, _base.scss, le CSS
     critique et pattern-hero-dark.svg. */
  --im-accent-light: #8fb4d8;

  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 1.0625rem;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- interligne 1,6 → 1,7 : mêmes valeurs dans _variables.scss, _typography.scss et le CSS critique. */
  --bs-body-line-height: 1.7;
  --bs-body-color: #1a1c20;
  --bs-body-color-rgb: 26, 28, 32;
  --bs-body-bg: #f7f6f2;
  --bs-body-bg-rgb: 247, 246, 242;
  --bs-emphasis-color: #1a1c20;
  --bs-emphasis-color-rgb: 26, 28, 32;
  --bs-secondary-color: #585d66;
  --bs-secondary-color-rgb: 88, 93, 102;
  --bs-heading-color: #1a1c20;
  --bs-primary: #1f4e79;
  --bs-primary-rgb: 31, 78, 121;
  --bs-primary-text-emphasis: #0c1f30; /* shade-color(accent, 60 %) */
  --bs-primary-bg-subtle: #d2dce4;     /* tint-color(accent, 80 %) */
  --bs-primary-border-subtle: #a5b8c9; /* tint-color(accent, 60 %) */
  --bs-link-color: #1f4e79;
  --bs-link-color-rgb: 31, 78, 121;
  --bs-link-hover-color: #163a5a;
  --bs-link-hover-color-rgb: 22, 58, 90;
  --bs-border-color: #d8d5ce;
  --bs-border-radius: 0.25rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.25rem;
  --bs-border-radius-xl: 0.25rem;
  --bs-border-radius-xxl: 0.25rem;
  --bs-box-shadow: none;
  --bs-box-shadow-sm: none;
  --bs-box-shadow-lg: none;
  --bs-box-shadow-inset: none;
  --bs-focus-ring-width: 3px;
  --bs-focus-ring-opacity: 0.4;
  --bs-focus-ring-color: rgba(31, 78, 121, 0.4);
}

/* Boutons : graisse 600, remplissage, anneau de focus 3px par variante, comme le build Sass
   (Bootstrap 5.3 : 0 0 0 $btn-focus-width rgba(var(--bs-btn-focus-shadow-rgb), .5) ; lot 00, revue, C10) */
.btn {
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: 0.5rem;
  --bs-btn-font-weight: 600;
  --bs-btn-border-radius: 0.25rem;
  --bs-btn-focus-box-shadow: 0 0 0 3px rgba(var(--bs-btn-focus-shadow-rgb), 0.5);
  --bs-btn-box-shadow: none;
  --bs-btn-active-shadow: none;
}

/* --- 2. Base ------------------------------------------------------------------ */
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 1rem;
}

/* Pied de page collé en bas sur les pages courtes */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh; /* amélioration progressive (lot 00, revue) */
  text-rendering: optimizeLegibility;
}

.im-main {
  flex: 1 0 auto;
  padding: 2.5rem 0 4rem;
  outline: 0; /* cible du lien d'évitement (tabindex="-1") */
}

/* Titres : graisse 600, interlettrage légèrement resserré */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

/* Liens soulignés, soulignement renforcé au survol */
a {
  text-underline-offset: 0.15em;
}

a:hover,
a:focus-visible {
  text-decoration-thickness: 2px;
}

/* Focus visible : contour accent 3px, décalé de 2px, partout */
:focus-visible {
  outline: 3px solid var(--im-accent);
  outline-offset: 2px;
}

::selection {
  background-color: #1f4e79;
  color: #f7f6f2;
}

/* Largeur de lecture */
.im-prose {
  max-width: 68ch;
}

/* Mouvement réduit : transitions et animations neutralisées */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- 3. Composants ------------------------------------------------------------ */

/* Lien d'évitement : masqué par .visually-hidden-focusable tant qu'il n'a pas le focus */
.im-skip-link:focus {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29) --- 1030 → 1040 : l'en-tête devient collant à
     z-index 1030 au-delà de 62 em et, venant après dans le document, il recouvrait le lien
     d'évitement au moment précis où celui-ci reçoit le focus. Même valeur dans le CSS critique. */
  z-index: 1040;
  padding: 0.5rem 1rem;
  color: #f7f6f2;
  text-decoration: none;
  background-color: #1a1c20;
  border-radius: 0.25rem;
}

/* En-tête */
.im-header {
  padding: 1rem 0;
  background-color: #f7f6f2;
  border-bottom: 1px solid #d8d5ce;
}

.im-header-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  align-items: center;
  justify-content: space-between;
}

.im-brand-block {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.im-brand {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  color: #1a1c20;
  text-decoration: none;
  letter-spacing: -0.015em;
}

.im-brand:hover,
.im-brand:focus-visible {
  color: #1f4e79;
  text-decoration: underline;
}

.im-tagline {
  margin: 0;
  font-size: 0.9375rem;
  color: #585d66;
}

/* Sélecteur de langue */
.im-lang-switch-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-lang-switch-list a {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  color: #1f4e79;
  text-decoration: none;
  border-radius: 0.25rem;
}

.im-lang-switch-list a:hover,
.im-lang-switch-list a:focus-visible {
  color: #163a5a;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

/* Langue courante (aria-current="page") : encre, graisse 600, soulignement épais */
.im-lang-switch-list a[aria-current] {
  font-weight: 600;
  color: #1a1c20;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
}

/* Page provisoire */
.im-hero {
  padding: 1.5rem 0;
}

.im-hero-title {
  margin-bottom: 1.25rem;
  font-size: clamp(1.875rem, 1.25rem + 2.5vw, 2.75rem);
}

.im-hero-lead {
  margin-bottom: 1.5rem;
  font-size: 1.25rem;
}

.im-hero-method {
  padding-left: 1rem;
  margin-bottom: 1.5rem;
  font-weight: 600;
  color: #1f4e79;
  border-left: 3px solid #1f4e79;
}

.im-hero-status {
  margin-bottom: 0;
  color: #585d66;
}

/* Pages d'erreur */
.im-error {
  padding: 1.5rem 0;
}

.im-error-code {
  margin-bottom: 0.5rem;
  font-size: 4rem;
  font-weight: 600;
  line-height: 1;
  color: #585d66;
  letter-spacing: -0.03em;
}

.im-error-title {
  margin-bottom: 1rem;
}

.im-error-message {
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
}

/* --- NOUVEAU (lot 02, revue) --- A11Y-8 : .im-error-actions porte le bouton de retour */
/* des trois vues d'erreur (app/views/errors/404.php:14, 405.php:14, 500.php) et n'était */
/* stylée dans aucune des deux feuilles. Miroir exact de resources/scss/theme/_components.scss. */
.im-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 1.5rem 0 0;
}

.im-error-details {
  padding: 1rem;
  margin-top: 2rem;
  font-size: 0.875rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

/* Pied de page */
.im-footer {
  padding: 1.5rem 0;
  font-size: 0.9375rem;
  color: #585d66;
  border-top: 1px solid #d8d5ce;
}

.im-footer p {
  margin: 0;
}

.im-footer-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  align-items: baseline;
}

.im-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 0;
  margin: 0 0 0 auto;
  list-style: none;
}

/* Bouton principal : encre sur papier, survol accent foncé */
.btn-primary {
  --bs-btn-color: #f7f6f2;
  --bs-btn-bg: #1a1c20;
  --bs-btn-border-color: #1a1c20;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #163a5a;
  --bs-btn-hover-border-color: #163a5a;
  --bs-btn-focus-shadow-rgb: 31, 78, 121;
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #163a5a;
  --bs-btn-active-border-color: #163a5a;
  --bs-btn-active-shadow: none;
  --bs-btn-disabled-color: #f7f6f2;
  --bs-btn-disabled-bg: #585d66;
  --bs-btn-disabled-border-color: #585d66;
}

/* --- NOUVEAU (lot 00, revue) --- C3 : focus visible des boutons = contour plein accent.
   Bootstrap déclare .btn:focus-visible { outline: 0; box-shadow: … } (plus spécifique que
   :focus-visible ci-dessus) : l'anneau translucide à 40 % ne contrastait pas assez. */
.btn:focus-visible {
  outline: 3px solid var(--im-accent);
  outline-offset: 2px;
  box-shadow: none;
}

/* --- 4. Utilitaires (préfixe im-) --------------------------------------------- */
.im-muted {
  color: #585d66 !important;
}

.im-accent {
  color: #1f4e79 !important;
}

.im-ink {
  color: #1a1c20 !important;
}

.im-border-top {
  border-top: 1px solid #d8d5ce !important;
}

.im-border-bottom {
  border-bottom: 1px solid #d8d5ce !important;
}

.im-list-plain {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.im-list-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.im-link-plain {
  text-decoration: none;
}

.im-link-plain:hover,
.im-link-plain:focus-visible {
  text-decoration: underline;
}

.im-section {
  padding: 3rem 0;
}

/* Affichage conditionné à JavaScript (classes no-js et js portées par l'élément racine) */
.no-js .im-js-only {
  display: none !important;
}

.js .im-no-js-only {
  display: none !important;
}

/* --- 5. NOUVEAU (lot 01) : pages CMS du site public et contenu Markdown -------- */
/* Miroir de theme/_components.scss (.im-page*, mixin im-prose-content). Les mêmes
   règles de contenu s'appliquent à l'aperçu du back-office (.im-admin-preview,
   admin-fallback.css). */
.im-page {
  padding: 1.5rem 0;
}

.im-page-title {
  margin-bottom: 1rem;
  font-size: clamp(1.875rem, 1.25rem + 2.5vw, 2.75rem);
}

.im-page-lead {
  margin-bottom: 1.5rem;
  font-size: 1.25rem;
}

.im-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  margin-bottom: 2rem;
  font-size: 0.9375rem;
  color: #585d66;
}

/* Contenu Markdown (Ingenia\Core\Markdown) : h2-h5, listes, citations, règle, figures, code */
.im-prose h2,
.im-prose h3,
.im-prose h4,
.im-prose h5 {
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
}

.im-prose h2 {
  font-size: 1.75rem;
}

.im-prose h3 {
  font-size: 1.375rem;
}

.im-prose h4 {
  font-size: 1.125rem;
}

.im-prose h5 {
  font-size: 1rem;
  color: #585d66;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.im-prose p,
.im-prose ul,
.im-prose ol,
.im-prose blockquote,
.im-prose pre,
.im-prose hr {
  margin-bottom: 1.25rem;
}

.im-prose ul,
.im-prose ol {
  padding-left: 1.5rem;
}

.im-prose li + li {
  margin-top: 0.25rem;
}

/* Un niveau d'imbrication */
.im-prose ul ul,
.im-prose ul ol,
.im-prose ol ul,
.im-prose ol ol {
  margin-top: 0.25rem;
  margin-bottom: 0;
}

.im-prose blockquote {
  padding: 0.25rem 0 0.25rem 1rem;
  color: #585d66;
  border-left: 3px solid #1f4e79;
}

.im-prose blockquote > :last-child {
  margin-bottom: 0;
}

.im-prose hr {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
  border-top: 1px solid #d8d5ce;
  opacity: 1;
}

.im-prose code {
  padding: 0.1em 0.35em;
  font-size: 0.9em;
  color: #1a1c20;
  background-color: rgba(26, 28, 32, 0.06);
  border-radius: 0.25rem;
}

.im-prose pre {
  padding: 1rem;
  overflow-x: auto;
  font-size: 0.9375rem;
  line-height: 1.5;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-prose pre code {
  padding: 0;
  font-size: inherit;
  background-color: transparent;
}

.im-prose a {
  overflow-wrap: anywhere;
}

.im-prose img {
  max-width: 100%;
  height: auto;
}

/* Figures produites par Markdown pour ![alt](media:ID) */
.im-prose .im-figure {
  margin: 2rem 0;
}

.im-prose .im-figure img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-prose .im-figure figcaption {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  color: #585d66;
}

.im-prose > :first-child {
  margin-top: 0;
}

.im-prose > :last-child {
  margin-bottom: 0;
}

/* --- 6. NOUVEAU (lot 02) : echelle typographique du site public ------------ */
/* Miroir exact de resources/scss/theme/_typography.scss (regles identiques, commentaires convertis). */
/* --- Police auto-hébergée ----------------------------------------------------- */
/* Aucune police n'est vendorée au lot 02 : la pile système du lot 00 est conservée. */
/* scripts/vendor-font.ps1 écrit son bloc @font-face entre les deux marqueurs */
/* ci-dessous, ici ET dans resources/css/theme-fallback.css (mêmes marqueurs), pour */
/* que la chaîne Sass et le build de repli restent identiques. Ne pas les supprimer. */
/* Voir aussi docs/IDEE-police-anti-scraping.md. */
/* im-font-face:start */
/* --- NOUVEAU (évolution visuelle, 2026-09-29, seconde version, accord de Michael : « ok pour la
   police, vas y avec Urbanist ») --- Urbanist (SIL Open Font License 1.1, licence dans
   public/assets/fonts/urbanist-ofl.txt), police VARIABLE : un seul fichier par style couvre les
   graisses 100 à 900, dont les 400, 500, 600 et 700 employées par le thème. Quatre fichiers woff2,
   sous-ensembles « latin » et « latin-ext » tels que les sert Google Fonts (v18), auto-hébergés :
   aucun appel à un domaine tiers, font-src 'self'. unicode-range fait charger « latin-ext » seulement
   si un caractère l'exige (le français, l'anglais et l'italien tiennent dans « latin », œ compris).
   Bloc écrit À LA MAIN, pas par scripts/vendor-font.ps1 : le script ne connaît que les graisses
   fixes (un fichier, une graisse), pas la plage « 100 900 » ni unicode-range ; ses marqueurs sont
   respectés, et « vendor-font.ps1 -Name Urbanist -Remove » vide bien ce bloc pour revenir à la pile
   système. Copie identique dans resources/css/theme-fallback.css et resources/scss/theme/_typography.scss ;
   les mêmes @font-face sont AUSSI dans le CSS critique de app/views/layout/base.php, avec un
   <link rel="preload"> sur le fichier latin droit : la demande part au premier rendu, avant la
   feuille complète chargée sans bloquer. font-display: swap — le texte s'affiche d'abord dans la
   pile système, puis bascule ; le fichier fait 27 Ko et il est en cache dès la seconde page. */
@font-face {
  font-family: "Urbanist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/urbanist-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Urbanist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/urbanist-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Urbanist";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/urbanist-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Urbanist";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/urbanist-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Urbanist en tête de la pile système du lot 00 (repli si le fichier ne se charge pas) : la
   variable Bootstrap suit, donc body, boutons et champs aussi. Le CSS critique porte la même pile. */
:root {
  --im-font-sans: "Urbanist", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-font-sans-serif: var(--im-font-sans);
  --bs-body-font-family: var(--im-font-sans);
}
/* im-font-face:end */

/* --- Marches de l'échelle ----------------------------------------------------- */
:root {
  --im-fs-xs: .8125rem;                                        /* 13 px  mentions */
  --im-fs-sm: .9375rem;                                        /* 15 px  métadonnées, aides */
  --im-fs-base: 1.0625rem;                                     /* 17 px  corps (lot 00) */
  --im-fs-lg: clamp(1.1875rem, 1.114rem + .33vw, 1.375rem);    /* 19 → 22 px  chapeau, h4 */
  --im-fs-xl: clamp(1.3125rem, 1.19rem + .54vw, 1.625rem);     /* 21 → 26 px  h3, titres de carte */
  --im-fs-2xl: clamp(1.5rem, 1.304rem + .87vw, 2rem);          /* 24 → 32 px  h2, titres de section */
  --im-fs-3xl: clamp(1.875rem, 1.533rem + 1.52vw, 2.75rem);    /* 30 → 44 px  h1 */

  --im-lh-tight: 1.15;
  --im-lh-title: 1.2;
  --im-lh-body: 1.7;
}

/* --- Hiérarchie des titres du site public ------------------------------------- */
/* Une seule règle par niveau : les titres de composants (.im-hero-title, */
/* .im-page-title, .im-section-title…) héritent de leur niveau sémantique. */
.im-body h1,
.im-body .h1 {
  font-size: var(--im-fs-3xl);
  line-height: var(--im-lh-tight);
}

.im-body h2,
.im-body .h2 {
  font-size: var(--im-fs-2xl);
  line-height: var(--im-lh-title);
}

.im-body h3,
.im-body .h3 {
  font-size: var(--im-fs-xl);
  line-height: 1.25;
}

.im-body h4,
.im-body .h4 {
  font-size: var(--im-fs-lg);
  line-height: 1.3;
}

.im-body h5,
.im-body .h5 {
  font-size: var(--im-fs-base);
  line-height: 1.4;
}

.im-body h6,
.im-body .h6 {
  font-size: var(--im-fs-sm);
  line-height: 1.4;
}

/* Contenu Markdown : mêmes marches que la hiérarchie ci-dessus. Ces règles sont */
/* plus spécifiques que « .im-body h2 » et que « .im-prose h2 » (lot 01), dont */
/* elles ne reprennent que la taille : couleur, casse et interlettrage du h5 de */
/* .im-prose restent ceux du lot 01. */
.im-body .im-prose h2 {
  font-size: var(--im-fs-2xl);
}

.im-body .im-prose h3 {
  font-size: var(--im-fs-xl);
}

.im-body .im-prose h4 {
  font-size: var(--im-fs-lg);
}

.im-body .im-prose h5 {
  font-size: var(--im-fs-base);
}

/* --- Chapeau ------------------------------------------------------------------ */
/* Bootstrap donne à .lead la graisse 300 : trop maigre sur la pile système, et */
/* reconnaissable entre mille. Graisse normale, taille prise dans l'échelle. */
.im-body .lead {
  font-size: var(--im-fs-lg);
  font-weight: 400;
  line-height: 1.5;
}

/* --- Confort de lecture ------------------------------------------------------- */
/* Largeur de lecture : var(--im-prose-width) = 68ch (lot 00). */
.im-measure {
  max-width: var(--im-prose-width);
}

.im-measure-narrow {
  max-width: 56ch;
}

.im-body p {
  text-wrap: pretty;
}

/* --- Étiquettes et légendes --------------------------------------------------- */
/* Surtitre : petite capitale espacée, atténuée (6,12:1 sur papier). */
.im-eyebrow {
  display: block;
  margin-bottom: .5rem;
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.im-caption {
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

.im-body small,
.im-body .small {
  font-size: var(--im-fs-sm);
}

/* Chiffres à chasse fixe (numéros d'étape, dates, compteurs) */
.im-num {
  font-variant-numeric: tabular-nums;
}

/* --- 7. NOUVEAU (lot 02) : complements aux composants des lots 00 et 01 ---- */
/* Miroir exact de resources/scss/theme/_components.scss (bloc lot 02) (regles identiques, commentaires convertis). */
/* --- NOUVEAU (lot 02) --- Compléments aux composants des lots 00 et 01 -------------------- */
/* Écrits en CSS pur, sans imbrication ni variable Sass : resources/css/theme-fallback.css */
/* en contient la copie exacte (parité entre la chaîne Sass et le build de repli). */
/* Les composants propres au site public sont dans theme/_public.scss. */

/* En-tête d'une page CMS : le chapeau et les métadonnées restent dans la largeur de lecture. */
.im-page-header {
  max-width: var(--im-prose-width);
  margin-bottom: 2rem;
}

/* Corps et pied d'une page CMS (app/views/pages/show.php, lot 01) */
.im-page-body {
  margin-bottom: 0;
}

.im-page-footer {
  padding-top: 1.5rem;
  margin-top: 3rem;
  border-top: 1px solid var(--im-line);
}

/* Figure hors contenu Markdown (vignettes de projet, motif d'ouverture) */
.im-figure {
  margin: 0;
}

.im-figure img,
.im-figure svg {
  display: block;
  width: 100%;
  height: auto;
}

.im-figure figcaption {
  margin-top: .5rem;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

/* Pied de page enrichi (pages légales, plan du site) : les listes de liens du lot 00 */
/* restent alignées à droite, les blocs ajoutés passent à la ligne sur mobile. */
.im-footer-nav {
  flex: 1 1 100%;
}

.im-footer-nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-footer-title {
  margin: 0 0 .5rem;
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-ink);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Lignes du pied de page du lot 00, jamais stylées jusqu'ici */
.im-footer-copyright {
  margin: 0;
}

.im-footer-construction {
  margin: 0;
  color: var(--im-muted);
}

/* --- 8. NOUVEAU (lot 02) : composants du site public ----------------------- */
/* Miroir exact de resources/scss/theme/_public.scss (regles identiques, commentaires convertis). */
/* --- Jetons complémentaires --------------------------------------------------- */
/* Erreur et succès : seules couleurs ajoutées aux six jetons du lot 00. */
/* Contrastes sur papier #f7f6f2 : erreur 8,58:1, succès 7,43:1 (AA et AAA). */
/* Elles ne portent jamais seules une information : un texte les accompagne. */
:root {
  --im-error: #8a1c1c;
  --im-success: #1e5b3a;
  --im-surface: #ffffff;
}

/* --- Angles vifs et champs de formulaire -------------------------------------- */
/* Bootstrap arrondit boutons et champs à 0,25rem : sur le site public, tout est */
/* à angle vif. Le back-office garde le rayon du lot 00. */
.im-body .btn,
.im-body .form-control,
.im-body .form-select,
.im-body .form-check-input,
.im-body .alert,
.im-btn {
  /* --- CONSERVÉ (lot 02) --- border-radius: 0;
     --- MODIFIÉ (évolution visuelle, 2026-09-29, demande de Michael) --- angle doux : le rayon
     court des jetons. Le CSS critique porte la même valeur sur .btn (.5rem). */
  border-radius: var(--im-radius-sm);
}

/* Bordure « atténuée » (6,12:1 sur papier) et non « trait » (1,36:1) : un champ */
/* est un composant d'interface, WCAG 1.4.11 demande 3:1 pour sa bordure. */
.im-body .form-control,
.im-body .form-select,
.im-body .im-field-control {
  /* --- CONSERVÉ (lot 02) --- padding: .5rem .75rem;
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- champ plus ample ; même
     boîte dans le CSS critique (tests/seo-test.php). */
  padding: .75rem 1rem;
  font-size: var(--im-fs-base);
  line-height: 1.5;
  color: var(--im-ink);
  background-color: var(--im-surface);
  border: 1px solid var(--im-muted);
}

/* --- NOUVEAU (lot 02, revue) --- ACC-5 : la case à cocher de consentement gardait la */
/* bordure Bootstrap (--bs-border-color, soit --im-line #d8d5ce sur papier #f7f6f2 : */
/* 1,36:1), sous le seuil de WCAG 1.4.11 (3:1) pour un composant d'interface. Elle prend */
/* désormais la même bordure « atténuée » que les autres champs : #585d66 sur #f7f6f2, */
/* soit 6,12:1 (luminances relatives 0,10867 et 0,92098). Elle n'est pas ajoutée au */
/* sélecteur ci-dessus : la case n'a ni padding, ni font-size, ni fond blanc. */
/* Une fois cochée, .form-check-input:checked (plus bas) passe à --im-ink : 15,77:1. */
.im-body .form-check-input {
  border: 1px solid var(--im-muted);
}

/* Focus : contour plein accent (règle :focus-visible du lot 00), jamais l'anneau */
/* translucide de Bootstrap, qui est une ombre. */
.im-body .form-control:focus,
.im-body .form-select:focus,
.im-body .im-field-control:focus,
.im-body .form-check-input:focus {
  color: var(--im-ink);
  border-color: var(--im-accent);
  box-shadow: none;
}

.im-body .form-check-input:checked {
  background-color: var(--im-ink);
  border-color: var(--im-ink);
}

/* Messages Bootstrap (.alert) ramenés au thème : fond blanc, filet, bande de */
/* couleur à gauche. Aucun aplat coloré, aucun arrondi. */
.im-body .alert {
  padding: 1rem 1.25rem;
  color: var(--im-ink);
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
  border-left: 3px solid var(--im-accent);
}

.im-body .alert-success {
  border-left-color: var(--im-success);
}

.im-body .alert-danger,
.im-body .alert-warning {
  border-left-color: var(--im-error);
}

/* --- Marque : monogramme + nom ------------------------------------------------ */
/* --- NOUVEAU (logo, 2026-09-18) --- copie exacte de theme/_public.scss.
   Le lien de marque (app/views/layout/header.php) contient désormais le monogramme ET le nom
   de la société, qui reste du TEXTE. Une seule cible cliquable, donc un seul <a>.

   .im-brand est déclarée plus haut (section « En-tête », copie de theme/_components.scss) :
   cette règle-ci ne fait que l'AUGMENTER, et l'emporte par l'ordre du fichier, exactement
   comme theme/public est importé après theme/components dans resources/scss/app.scss.

   La BOÎTE du monogramme est fixée ici ET dans le CSS critique de app/views/layout/base.php.
   La feuille complète est chargée SANS BLOQUER le rendu (contrat §6) : une taille écrite ici
   seulement arriverait trop tard, l'image s'afficherait d'abord à sa taille intrinsèque
   96 × 114 puis rétrécirait — exactement le défaut du constat UX-11 du lot 02.
   Largeur ET hauteur en dur (plutôt que height + width: auto) : la boîte est juste même si
   l'image n'arrive jamais. 1.6875rem × 2rem = 27 × 32 px à 16 px de racine ; le rapport natif
   du détourage est 356/422, soit 27,00 px pour 32 px de haut. En rem, le monogramme grandit
   avec la taille de texte choisie par le visiteur (WCAG 1.4.4). */
.im-brand {
  display: flex;
  align-items: center;
  gap: .5rem;
}

/* --- CONSERVÉ (logo, 2026-09-18, première version) --- .im-brand-mark habillait une BALISE
   IMAGE (<img class="im-brand-mark" src="…logo-mark-96.webp" alt="">) et ne portait donc que
   la boîte :
     .im-brand-mark { flex: none; width: 1.6875rem; height: 2rem; }

   --- NOUVEAU (logo, 2026-09-18) --- copie exacte de theme/_public.scss. La balise image est
   retirée du HTML : le contrat du lot 04 (docs/ARCHITECTURE-BOT-SHIELD.md §7) veut que la page
   portfolio ne porte « AUCUNE <img>, <picture> ni chaîne /media/ dans le HTML », et l'en-tête
   est rendue sur toutes les pages. Le monogramme est maintenant une IMAGE DE FOND posée sur un
   <span> vide, dans le même lien que le nom (app/views/layout/header.php). Aucun style en
   ligne : la politique de sécurité n'autorise que 'self' et le nonce.

   La BOÎTE est inchangée au pixel près et reste écrite AUSSI dans le CSS critique de
   app/views/layout/base.php, où elle compte encore plus qu'avant : un <span> vide n'a aucune
   taille intrinsèque, sans réservation il ferait 0 × 0 au premier rendu puis 27 × 32 px à
   l'arrivée de cette feuille, chargée sans bloquer le rendu (constat UX-11 du lot 02).

   flex: none — le monogramme ne se comprime pas quand le nom manque de place sur un écran
   étroit ; c'est le nom qui passe à la ligne.

   background-size: contain — la boîte (27/32 = 0,8438) et le détourage (356/422 = 0,8436) ne
   tombent pas exactement juste ; « contain » garde le rapport du dessin plutôt que de l'étirer.
   L'adresse est relative à CETTE feuille : app.css est écrite dans public/assets/css/, donc
   ../img/ pointe bien public/assets/img/. Même écriture que .im-hero (pattern-hero.svg). */
.im-brand-mark {
  flex: none;
  width: 1.6875rem;
  height: 2rem;
  background-image: url("../img/logo-mark-96.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* --- NOUVEAU (logo, 2026-09-18) --- impression : par défaut, aucun navigateur n'imprime les
   images de fond. Sans cette règle, la boîte du monogramme sortirait en carré blanc de 27 px
   devant le nom. On la retire du papier : la marque y reste parfaitement lisible, puisqu'elle
   est écrite EN TOUTES LETTRES dans le même lien. Rien n'est perdu — l'ancienne <img> ne
   portait déjà aucune information (alt=""), et le nom accessible du lien est inchangé. */
@media print {
  .im-brand-mark {
    display: none;
  }
}

/* --- Navigation principale ---------------------------------------------------- */
/* Insérée dans .im-header-inner entre la marque et le sélecteur de langue : */
/* pleine largeur sous la marque en mobile, sur la même ligne à partir de 62em. */
/* Aucun « order » CSS : l'ordre visuel suit l'ordre du document (WCAG 2.4.3). */
/* --- NOUVEAU (évolution langue, 2026-09-12) --- sous 62 em, cette base est surchargée dans
   la section « Sélecteur de langue » : la navigation partage désormais sa ligne avec le
   bouton de langue (docs/ARCHITECTURE-SITE-PUBLIC.md §13.5). */
.im-nav {
  flex: 1 1 100%;
}

.im-nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1.5rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

/* Les liens de app/views/layout/_nav.php ne portent pas de classe ; .im-nav-link */
/* reste accepté pour un usage hors de cette liste. */
.im-nav-list a,
.im-nav-link {
  display: inline-block;
  padding: .25rem 0;
  font-weight: 500;
  color: var(--im-ink);
  text-decoration: none;
  border-bottom: 2px solid transparent;
}

.im-nav-list a:hover,
.im-nav-list a:focus-visible,
.im-nav-link:hover,
.im-nav-link:focus-visible {
  color: var(--im-accent);
  border-bottom-color: var(--im-accent);
}

/* Page courante : graisse et filet, jamais la couleur seule */
.im-nav-list a[aria-current],
.im-nav-link[aria-current] {
  font-weight: 600;
  color: var(--im-ink);
  border-bottom-color: var(--im-ink);
}

@media (min-width: 62em) {
  .im-nav {
    flex: 1 1 auto;
  }

  .im-nav-list {
    justify-content: flex-end;
  }
}

/* --- NOUVEAU (lot 02, revue) --- ACC-7 : bouton de menu repliable.
   Amelioration progressive : le bouton n'existe visuellement que sous 48 em ET quand la classe
   « js » a remplace « no-js » sur <html>. Sans script ou sur grand ecran il reste display: none
   et la liste est rendue normalement, donc la navigation n'est jamais inaccessible.
   L'etat est lu directement sur aria-expanded : le CSS et le lecteur d'ecran voient la meme
   verite, il n'y a pas de classe d'etat a maintenir en parallele. */
.im-nav-toggle {
  display: none;
  align-items: center;
  gap: .625rem;
  padding: .35rem .75rem;
  font: inherit;
  font-weight: 600;
  color: var(--im-ink);
  background-color: transparent;
  border: 1px solid var(--im-muted);
  border-radius: 0;
  cursor: pointer;
}

.im-nav-toggle-bars,
.im-nav-toggle-bars::before,
.im-nav-toggle-bars::after {
  display: block;
  width: 1.125rem;
  height: 2px;
  background-color: currentColor;
}

.im-nav-toggle-bars {
  position: relative;
}

.im-nav-toggle-bars::before,
.im-nav-toggle-bars::after {
  position: absolute;
  left: 0;
  content: "";
}

.im-nav-toggle-bars::before {
  top: -6px;
}

.im-nav-toggle-bars::after {
  top: 6px;
}

@media (max-width: 47.99em) {
  /* --- NOUVEAU (évolution langue, 2026-09-12) --- Correction de passage (contrat
     docs/ARCHITECTURE-SITE-PUBLIC.md §13.5). Ce bloc était correct ici ; sa copie Sass
     (resources/scss/theme/_public.scss), dont les cinq déclarations avaient été neutralisées
     par erreur lors du contrôle du lot 02, est rétablie à l'identique de celui-ci. */
  .js .im-nav-toggle {
    display: inline-flex;
  }

  .js .im-nav-toggle[aria-expanded="false"] + .im-nav-list {
    display: none;
  }

  .js .im-nav-toggle[aria-expanded="true"] + .im-nav-list {
    flex-direction: column;
    gap: 0;
    margin-top: .75rem;
  }
}

/* --- Sélecteur de langue (complément du lot 00) ------------------------------- */
/* --- NOUVEAU (évolution langue, 2026-09-12) --- section complétée : sélecteur compact
   « globe + code + chevron » qui ouvre la liste des langues (contrat
   docs/ARCHITECTURE-SITE-PUBLIC.md §13.5). Balisage : app/views/layout/header.php, un
   <details class="im-lang-menu"> natif ; fermeture par Échap, clic extérieur ou perte du
   focus : dernier bloc de public/assets/js/app.js ; état fermé et ancrage de la liste dès le
   premier rendu : CSS critique de app/views/layout/base.php. La règle d'origine (display,
   align-items) est conservée telle quelle, complétée d'une marge automatique.

   Mise en page de l'en-tête. L'ordre visuel suit l'ordre du document (marque, navigation,
   langue) : ni « order », ni positionnement absolu du sélecteur (principe du lot 02).
    - sous 48 em : la marque occupe seule la première ligne ; la deuxième porte le bouton
      Menu à gauche et le bouton de langue à droite ; le menu se déplie sous le bouton Menu ;
    - de 48 à 62 em : la navigation reste sous la marque, le bouton de langue à droite ;
    - à partir de 62 em : une seule ligne, le bouton de langue à l'extrémité droite.
   La marge automatique pousse le sélecteur au bord droit de sa ligne à toutes les largeurs.
   Même seul sur sa ligne, il y reste : la liste, alignée sur le bord droit du bouton, ne
   peut donc pas sortir de l'écran par la gauche. */
.im-lang-switch {
  display: flex;
  align-items: center;
  /* --- NOUVEAU (évolution langue, 2026-09-12) --- ancrage au bord droit de la ligne */
  margin-left: auto;
}

/* Sous 62 em : la marque seule sur la première ligne (align-items: flex-start garde au lien
   de marque sa largeur naturelle au lieu de l'étirer sur toute la ligne). La navigation
   occupe la place que le sélecteur laisse sur la deuxième ligne ; sa base nulle garde le
   bouton Menu et le bouton de langue côte à côte, menu déplié ou non. Cette règle l'emporte,
   par l'ordre de la feuille, sur le « flex: 1 1 100% » de la section « Navigation
   principale », conservé ; au-delà de 62 em, la règle « flex: 1 1 auto » de cette section
   s'applique seule. */
@media (max-width: 61.99em) {
  .im-brand-block {
    flex: 1 1 100%;
    align-items: flex-start;
  }

  .im-nav {
    flex: 1 1 0%;
  }
}

/* Sous 48 em, le menu déplié allonge la navigation vers le bas : le sélecteur reste en haut
   de la ligne, à côté du bouton Menu, au lieu de se centrer sur la hauteur du menu.
   Sans JavaScript, il n'y a pas de bouton Menu : la liste de navigation reprend toute sa
   ligne, comme avant l'évolution, au lieu d'être comprimée à gauche du sélecteur, qui passe
   à droite de la ligne suivante. */
@media (max-width: 47.99em) {
  .im-lang-switch {
    align-self: flex-start;
  }

  .no-js .im-nav {
    flex: 1 1 100%;
  }
}

/* Menu natif : repère de positionnement de la liste déroulante. */
.im-lang-menu {
  position: relative;
}

/* Bouton (<summary>) : même famille que .im-nav-toggle. Encre sur papier (15,78:1), filet
   « atténué » #585d66 (6,12:1 sur papier, WCAG 1.4.11), graisse 600, angle vif.
   display: flex retire aussi le marqueur natif de <summary> dans Chrome et Firefox ; les
   deux règles suivantes couvrent Safari (::-webkit-details-marker) et ::marker. Elles
   restent séparées : un pseudo-élément inconnu invaliderait toute une liste de sélecteurs. */
/* --- NOUVEAU (évolution langue, 2026-09-12, intégration) --- précision de Michael (contrat
   docs/ARCHITECTURE-SITE-PUBLIC.md §13.5, « Aspect du bouton : sans encadré ») : ni bordure
   ni fond au repos, le globe, le code et le chevron suffisent à signaler un menu. Le filet
   décrit ci-dessus n'est plus posé ; le contour de focus global de 3 px reste le seul cadre,
   au clavier. Le texte garde son contraste : encre sur papier, 15,78:1. */
.im-lang-toggle {
  display: flex;
  align-items: center;
  gap: .375rem;
  padding: .35rem .6rem;
  font-weight: 600;
  color: var(--im-ink);
  background-color: transparent;
  /* --- CONSERVÉ (évolution langue, 2026-09-12, première version) ---
  border: 1px solid var(--im-muted); */
  /* --- NOUVEAU (évolution langue, 2026-09-12, intégration) --- sans encadré (§13.5) */
  border: 0;
  border-radius: 0;
  cursor: pointer;
  list-style: none;
}

.im-lang-toggle::-webkit-details-marker {
  display: none;
}

.im-lang-toggle::marker {
  content: "";
}

/* --- NOUVEAU (évolution langue, 2026-09-12) --- correction UX-2 / CONF-1 : hauteur de
   l'en-tête sans JavaScript (contrat §13.5, « L'en-tête n'est plus haut qu'aujourd'hui à
   aucune largeur »). Sous 48 em et sans script, la navigation occupe toute sa ligne et le
   bouton de langue passe seul sur la suivante : avec le rembourrage vertical de .35rem, il
   mesurait 38,4 px (ligne de 27,2 px + 2 x 5,6 px), contre 35,2 px pour l'ancienne liste en
   ligne du lot 00 (liens à .25rem), soit un en-tête plus haut de 3,2 px. Ramené à .25rem, il
   mesure 35,2 px, la hauteur exacte de l'ancienne ligne, et reste au-dessus des 24 px du
   critère WCAG 2.5.8. Avec JavaScript, rien ne change : le bouton garde l'alignement avec
   le bouton Menu. Spécificité 0,2,0 : la règle l'emporte sur .im-lang-toggle quel que soit
   l'ordre. Absente du CSS critique à dessein : sans script, la feuille complète est chargée
   de façon bloquante par le <noscript> de app/views/layout/base.php. */
@media (max-width: 47.99em) {
  .no-js .im-lang-toggle {
    padding-top: .25rem;
    padding-bottom: .25rem;
  }
}

/* Survol : accent sur le texte et sur le filet (#1f4e79 sur papier : 8,01:1). Le focus
   clavier garde le contour de la règle :focus-visible du lot 00 (3 px accent, décalé de
   2 px), qui s'applique à <summary> comme à tout élément focalisable. */
/* --- NOUVEAU (évolution langue, 2026-09-12, intégration) --- sans encadré (§13.5) : il n'y
   a plus de filet à colorer ; au survol, le texte passe à l'accent et le code est souligné
   (règle suivante). */
.im-lang-toggle:hover {
  color: var(--im-accent);
  /* --- CONSERVÉ (évolution langue, 2026-09-12, première version) ---
  border-color: var(--im-accent); */
}

/* --- NOUVEAU (évolution langue, 2026-09-12, intégration) --- survol du bouton : code
   souligné de 2 px, dans la couleur du texte (accent sur papier : 8,01:1). L'état ne repose
   donc pas sur la seule couleur. */
.im-lang-toggle:hover .im-lang-code {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .2em;
}

/* Pictogrammes (globe, chevron, coche) : taille fixée par leurs attributs width et height,
   jamais comprimée par le flex. */
.im-lang-icon,
.im-lang-chevron,
.im-lang-check {
  flex: 0 0 auto;
}

/* Code de langue en capitales : léger interlettrage. */
.im-lang-code {
  letter-spacing: .04em;
}

/* Le chevron pivote quand le menu est ouvert. La transition est neutralisée par la règle
   prefers-reduced-motion du lot 00. */
.im-lang-chevron {
  transition: transform .15s ease-out;
}

.im-lang-menu[open] .im-lang-chevron {
  transform: rotate(180deg);
}

/* Liste déroulante, en colonne, ancrée au bord droit du bouton. Ces règles surchargent,
   dans le contexte .im-lang-menu, la liste en ligne du lot 00 (section 3 de ce fichier et
   CSS critique) : spécificité 0,2,0 contre 0,1,0, quel que soit l'ordre des feuilles. Largeur
   bornée par la fenêtre moins les deux gouttières du conteneur : aucun débordement
   horizontal, même à 320 px. Ombre légère, seule exception au parti pris « aucune ombre » :
   la liste passe au-dessus du contenu de la page et doit s'en détacher. */
.im-lang-menu .im-lang-switch-list {
  position: absolute;
  top: calc(100% + .25rem);
  right: 0;
  z-index: 1020;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0;
  /* --- CONSERVÉ (évolution langue, 2026-09-12, première version) ---
  min-width: 11rem; */
  /* --- NOUVEAU (évolution langue, 2026-09-12) --- correction UX-4 : quand min-width et
     max-width se contredisent, min-width l'emporte (CSS 2.1 §10.4). Avec une police racine
     de 32 px à 320 px, 11rem (352 px) dépassait la borne de la fenêtre et la liste débordait
     à gauche, coche de la langue courante hors d'atteinte. La largeur minimale est donc
     elle-même bornée par la fenêtre moins les deux gouttières du conteneur : la borne
     s'applique à toutes les tailles de texte. Les noms de langue, mots uniques, y tiennent. */
  min-width: min(11rem, calc(100vw - 1.5rem));
  max-width: calc(100vw - 1.5rem);
  padding: .25rem 0;
  margin: 0;
  background-color: var(--im-surface, #fff);
  border: 1px solid var(--im-line);
  box-shadow: 0 .25rem .75rem rgba(26, 28, 32, .12);
}

/* Entrées : blocs pleine largeur ; cible de 45,5 px de haut (2 x .625rem + ligne de
   1,5 x 17 px), min-height garantissant 44 px si la taille du texte change. Le retrait
   gauche de 2,5rem réserve la place de la coche sur toutes les entrées : les noms restent
   alignés. Encre sur blanc : 17,06:1. */
.im-lang-menu .im-lang-switch-list a {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.75rem;
  padding: .625rem 1rem .625rem 2.5rem;
  line-height: 1.5;
  color: var(--im-ink);
  text-decoration: none;
  border-radius: 0;
}

/* Langue courante : graisse 600 et coche, jamais la couleur seule. */
.im-lang-menu .im-lang-switch-list a[aria-current] {
  font-weight: 600;
  color: var(--im-ink);
  text-decoration: none;
}

/* Survol et focus, langue courante comprise : fond papier, texte accent souligné
   (#1f4e79 sur #f7f6f2 : 8,01:1). */
.im-lang-menu .im-lang-switch-list a:hover,
.im-lang-menu .im-lang-switch-list a:focus-visible {
  color: var(--im-accent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .2em;
  background-color: var(--im-paper);
}

/* Le contour de focus du lot 00 (3 px accent) est rentré dans l'entrée : décalé vers
   l'extérieur, il déborderait du cadre de la liste. */
.im-lang-menu .im-lang-switch-list a:focus-visible {
  outline-offset: -3px;
}

/* La coche se loge dans le retrait réservé : 1rem de pictogramme, .5rem d'écart. */
.im-lang-check {
  margin-left: -1.5rem;
}

/* --- Ouverture (hero) --------------------------------------------------------- */
/* Le gabarit empile titre, chapeau, actions puis image dans un .container : */
/* aucune grille à deux colonnes, la composition reste verticale. */
.im-hero {
  /* --- CONSERVÉ (lot 02) --- padding: 2rem 0 2.5rem; border-bottom: 1px solid var(--im-line);
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- plus haute, sans filet : la
     première section, bande blanche, s'en détache d'elle-même. Mêmes valeurs dans le CSS
     critique (tests/seo-test.php). */
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 3.5rem 0 4rem → 4.5rem 0 5rem. */
  padding: 4.5rem 0 5rem;
}

/* Conteneur de l'ouverture : repère de positionnement pour le motif décoratif. */
.im-hero-inner {
  position: relative;
}

.im-hero-title {
  margin-bottom: 1rem;
}

.im-hero-lead {
  max-width: 56ch;
  margin-bottom: 1.5rem;
  font-size: var(--im-fs-lg);
  line-height: 1.5;
}

.im-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  margin-bottom: 0;
}

.im-hero-media,
.im-hero-figure,
.im-cover {
  display: block;
  max-width: 60rem;
  margin: 2rem 0 0;
}

.im-hero-img,
.im-cover-img,
.im-hero-figure img,
.im-hero-figure svg {
  display: block;
  width: 100%;
  height: auto;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
}

/* Variante décorative : le motif d'ouverture public/assets/img/pattern-hero.svg */
/* posé en fond, à droite, hors de la colonne de texte. À poser sur .im-hero par */
/* le gabarit ; le motif reste facultatif et n'est jamais porteur d'information. */
.im-hero-decor {
  background-image: url("../img/pattern-hero.svg");
  background-repeat: no-repeat;
  background-position: right -2rem top 50%;
  background-size: auto 80%;
}

@media (min-width: 62em) {
  .im-hero {
    /* --- CONSERVÉ (lot 02) --- padding: 3rem 0 3.5rem;
       --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- même valeur dans le CSS critique. */
    /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 6rem 0 6.5rem → 8rem 0 8.5rem. */
    padding: 8rem 0 8.5rem;
  }
}

@media (max-width: 74.98em) {
  .im-hero-decor {
    background-image: none;
  }
}

/* --- Sections ----------------------------------------------------------------- */
.im-section-head {
  max-width: var(--im-prose-width);
  margin-bottom: 2rem;
}

.im-section-title {
  margin-bottom: .75rem;
}

.im-section-lead,
.im-section-intro {
  margin-bottom: 2rem;
  font-size: var(--im-fs-lg);
  color: var(--im-muted);
}

.im-section + .im-section {
  border-top: 1px solid var(--im-line);
}

.im-section-more {
  margin: 2rem 0 0;
}

.im-link-more {
  font-weight: 600;
}

/* Liste vide (aucune offre, aucun projet publié) et note de bas de section */
.im-empty {
  padding: 1.5rem;
  margin: 0;
  color: var(--im-muted);
  border: 1px dashed var(--im-line);
}

.im-note {
  padding-left: 1rem;
  margin: 2rem 0 0;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
  border-left: 3px solid var(--im-line);
}

/* Crochets de gabarit : conteneurs de page. flow-root les rend étanches aux */
/* marges de leurs enfants, ce qui garantit le rythme vertical des sections. */
.im-home,
.im-approach,
.im-offers,
.im-portfolio,
.im-contact {
  display: flow-root;
}

/* Sections et conteneurs désignés par aria-labelledby, donc atteignables par un */
/* lien d'ancre : le titre ne doit pas coller au bord haut de la fenêtre. */
.im-home-manifesto,
.im-home-offers,
.im-method,
.im-offers-list,
.im-portfolio-flagship,
.im-portfolio-families,
.im-contact-form,
.im-form-inner {
  scroll-margin-top: 1.5rem;
}

/* --- Grille de cartes --------------------------------------------------------- */
/* --- CONSERVÉ (lot 02) --- la trame d'imprimeur : gouttières de 1 px laissant affleurer le fond
   « trait » du conteneur (gap: 1px ; background-color et border sur la grille ; cartes à-plat
   papier).
   --- MODIFIÉ (évolution visuelle, 2026-09-29, demande de Michael) --- cartes DÉTACHÉES : gouttière
   franche, surface arrondie, filet fin. --- MODIFIÉ (seconde version, le même jour) --- ni ombre ni soulèvement : au survol, seul le filet fonce (bloc 8 bis) ; angle franc d'un rem, rembourrage 1.75rem, gouttière 1.5rem.
   La transition porte AUSSI l'opacité et la translation : elle sert à l'apparition au
   défilement (.im-reveal), dont la règle générale est écrasée ici par la propriété raccourcie.
   Les déclarations de boîte (grille, marge, rembourrage, filet, rayon) sont recopiées dans le
   CSS critique de app/views/layout/base.php ; tests/seo-test.php verrouille les deux côtés. */
.im-cards,
.im-projects {
  display: grid;
  grid-template-columns: 1fr;
  /* --- CONSERVÉ (évolution visuelle, 2026-09-29, première version) --- gap: 1.25rem; */
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 1.5rem → 2rem. */
  gap: 2rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-card,
.im-project {
  /* --- CONSERVÉ (évolution visuelle, 2026-09-29, première version) --- padding: 1.5rem;
     border-radius: .75rem; box-shadow: var(--im-shadow-sm);
     transition: opacity .55s var(--im-ease), transform .3s var(--im-ease), box-shadow .3s var(--im-ease), border-color .3s var(--im-ease);
     --- MODIFIÉ (seconde version) --- sans ombre ; la transition sert à l'apparition au
     défilement (.im-reveal) et au filet qui fonce au survol ; le fond transite aussi (bandes). */
  display: flex;
  flex-direction: column;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- tuile sans filet (la couleur opposée à la bande suffit à la détacher), rembourrage 2rem,
     angle 1.25rem. Mêmes valeurs dans le CSS critique. */
  gap: .75rem;
  padding: 2rem;
  background-color: var(--im-surface);
  border: 0;
  border-radius: 1.25rem;
  transition: opacity .55s var(--im-ease), transform .55s var(--im-ease), background-color var(--im-dur) var(--im-ease);
}

/* Surtitre : étiquette courte, donc capitales espacées. */
.im-card-eyebrow {
  margin: 0;
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Accroche d'une offre : une phrase entière, jamais en capitales (illisible et */
/* mal restituée par les lecteurs d'écran). Atténuée, à la taille du corps. */
.im-card-tagline {
  margin: 0;
  color: var(--im-muted);
}

.im-card-title,
.im-project-title {
  margin: 0;
}

.im-card-title a,
.im-project-title a {
  color: var(--im-ink);
  text-decoration: none;
}

.im-card-title a:hover,
.im-card-title a:focus-visible,
.im-project-title a:hover,
.im-project-title a:focus-visible {
  color: var(--im-accent);
  text-decoration: underline;
}

.im-card-text,
.im-project-text {
  margin: 0;
}

/* Variantes de carte. Elles portent un id (#offer-…, #project-…) et sont donc */
/* des cibles de liens d'ancre : le titre ne doit pas coller au bord de la fenêtre. */
.im-offer-card,
.im-project-card {
  scroll-margin-top: 1.5rem;
}

.im-card-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-card-list li {
  padding-left: 1rem;
  text-indent: -1rem;
}

.im-card-list li + li {
  margin-top: .25rem;
}

/* Le lien de la carte est collé en bas : toutes les cartes s'alignent. */
.im-card-link {
  margin-top: auto;
  padding-top: .75rem;
  font-weight: 600;
}

/* Illustration d'une carte : vignette géométrique (public/assets/img/project-*.svg) */
/* ou variante dégradée de la médiathèque du lot 01. */
.im-card-media {
  display: block;
  margin: 0;
}

.im-card-img,
.im-project-thumb {
  display: block;
  width: 100%;
  height: auto;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
}

@media (min-width: 48em) {
  .im-cards,
  .im-projects {
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  }

  /* Variante à deux colonnes exactement (offres, familles d'intervention) */
  .im-cards-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* --- Étapes de la méthode (audit → outil → agent) ----------------------------- */
.im-steps {
  display: grid;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 2rem → 3rem. */
  gap: 3rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-step {
  /* --- CONSERVÉ (lot 02) --- padding-top: 1rem; border-top: 3px solid var(--im-ink);
     --- MODIFIÉ (évolution visuelle, 2026-09-29, demande de Michael) --- l'étape devient une
     carte : surface blanche, filet fin, liseré d'accent en tête, angle doux, ombre douce. */
  /* --- CONSERVÉ (évolution visuelle, 2026-09-29, première version) --- carte à liseré d'accent :
     padding: 1.25rem 1.25rem 1.5rem; background-color: var(--im-surface); border: 1px solid var(--im-line);
     border-top: 3px solid var(--im-accent); border-radius: var(--im-radius); box-shadow: var(--im-shadow-sm);
     --- MODIFIÉ (seconde version) --- plus de carte : un filet fin en tête, et le numéro en grand
     (règle .im-step-index). */
  padding-top: 2rem;
  border-top: 1px solid var(--im-line);
}

.im-step-label,
.im-step-number {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: baseline;
  margin: 0 0 .5rem;
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.im-step-index {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29) --- le numéro devient une pastille : accent sur
     voile d'accent (#1f4e79 sur #e6edf4 : 6,9:1). Elle reste décorative (aria-hidden côté gabarit),
     le libellé « Étape n » lu par les lecteurs d'écran est inchangé. */
  /* --- CONSERVÉ (évolution visuelle, 2026-09-29, première version) --- pastille : display: inline-flex;
     align-items: center; justify-content: center; min-width: 1.75rem; height: 1.75rem; padding: 0 .5rem;
     background-color: var(--im-accent-soft); border-radius: 999px;
     --- MODIFIÉ (seconde version) --- numéro d'affichage, à l'échelle des titres de section,
     accent (8,01:1 sur papier, 8,59:1 sur blanc). Le gabarit le complète déjà à deux chiffres. */
  display: block;
  font-size: var(--im-fs-title);
  font-weight: 500;
  line-height: 1;
  color: var(--im-accent);
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}

.im-step-label-text {
  color: var(--im-muted);
}

.im-step-title {
  margin: 0 0 .5rem;
}

.im-step-text {
  margin: 0;
}

@media (min-width: 48em) {
  .im-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* --- Portfolio ---------------------------------------------------------------- */
/* Tête d'affiche : hors trame, filet épais en tête, composition verticale. */
.im-project-featured,
.im-project-flagship {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.5rem;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
  /* --- CONSERVÉ (lot 02) --- border-top: 3px solid var(--im-ink);
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- filet fin sur les quatre
     côtés : l'étiquette « tête d'affiche » suffit à la distinguer. */
}

.im-project-featured .im-card-media,
.im-project-flagship .im-card-media {
  max-width: 40rem;
}

.im-project-featured .im-card-title,
.im-project-flagship .im-card-title {
  font-size: var(--im-fs-2xl);
}

@media (min-width: 48em) {
  .im-project-featured,
  .im-project-flagship {
    padding: 2rem;
  }
}

.im-project-meta {
  margin: 0;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

.im-project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem .5rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-project-tag {
  padding: .0625rem .5rem;
  font-size: var(--im-fs-xs);
  color: var(--im-muted);
  border: 1px solid var(--im-line);
}

/* Étiquette « tête d'affiche » : à-plat, texte papier (8,01:1 sur accent, */
/* 15,78:1 sur encre). Le libellé est explicite, la couleur ne dit rien seule. */
.im-badge {
  display: inline-block;
  padding: .0625rem .5rem;
  margin-left: .5rem;
  font-size: var(--im-fs-xs);
  font-weight: 600;
  color: var(--im-paper);
  text-transform: uppercase;
  letter-spacing: .08em;
  vertical-align: middle;
  background-color: var(--im-accent);
}

.im-badge-flagship {
  background-color: var(--im-ink);
}

/* --- Appel à l'action --------------------------------------------------------- */
/* À-plat encre : le seul bloc sombre du site. Papier sur encre = 15,78:1. */
/* .im-body en tête : la règle doit l'emporter sur l'utilitaire .im-section, */
/* que la chaîne Sass importe après ce partiel. */
.im-body .im-cta {
  /* --- CONSERVÉ (lot 02) --- padding: 2rem; margin-top: 3rem;
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- bande pleine largeur qui
     touche la section précédente ; le conteneur intérieur porte les gouttières. */
  padding: 5rem 0;
  margin-top: 0;
  color: var(--im-paper);
  background-color: var(--im-ink);
  border-top: 0;
}

.im-cta-inner {
  max-width: var(--im-prose-width);
  margin-right: auto;
  margin-left: auto;
}

.im-cta-title {
  margin: 0 0 .75rem;
  color: var(--im-paper);
}

.im-cta-text {
  max-width: 56ch;
  margin: 0 0 1.5rem;
  color: var(--im-paper);
}

.im-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  margin-bottom: 0;
}

/* Les liens de texte passent en papier ; les boutons gardent leurs couleurs. */
.im-cta a:not(.btn) {
  color: var(--im-paper);
}

/* Le contour de focus accent (1,97:1 sur encre) serait invisible ici : papier. */
.im-cta :focus-visible {
  outline-color: var(--im-paper);
}

/* Boutons inversés dans le bloc sombre */
.im-cta .btn-primary {
  --bs-btn-color: #1a1c20;
  --bs-btn-bg: #f7f6f2;
  --bs-btn-border-color: #f7f6f2;
  --bs-btn-hover-color: #1a1c20;
  --bs-btn-hover-bg: #ffffff;
  --bs-btn-hover-border-color: #ffffff;
  --bs-btn-active-color: #1a1c20;
  --bs-btn-active-bg: #ffffff;
  --bs-btn-active-border-color: #ffffff;
}

.im-cta .btn-outline-primary,
.im-cta .im-btn-ghost {
  --bs-btn-color: #f7f6f2;
  --bs-btn-border-color: #f7f6f2;
  --bs-btn-hover-color: #1a1c20;
  --bs-btn-hover-bg: #f7f6f2;
  --bs-btn-hover-border-color: #f7f6f2;
  --bs-btn-active-color: #1a1c20;
  --bs-btn-active-bg: #f7f6f2;
  --bs-btn-active-border-color: #f7f6f2;
}

@media (min-width: 48em) {
  .im-body .im-cta {
    /* --- CONSERVÉ (lot 02) --- padding: 2.5rem 3rem;
       --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- 6 rem au-delà de 62 em (bloc 8 bis). */
    padding: 6rem 0;
  }
}

/* --- Boutons ------------------------------------------------------------------ */
/* Les gabarits posent .im-btn, .im-btn-primary et .im-btn-ghost à côté des */
/* classes Bootstrap (.btn, .btn-primary, .btn-outline-primary) : le rendu vient */
/* de Bootstrap. Ces règles fixent l'angle vif, la graisse et l'intention de */
/* chaque variante ; elles suffisent si les classes Bootstrap disparaissent un jour. */
/* Elles ne posent que des variables Bootstrap : les états (survol, actif, focus) */
/* restent gérés par .btn, et le bloc sombre .im-cta peut les redéfinir. */
.im-btn {
  font-weight: 600;
  text-decoration: none;
}

.im-btn-primary {
  --bs-btn-color: #f7f6f2;
  --bs-btn-bg: #1a1c20;
  --bs-btn-border-color: #1a1c20;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #163a5a;
  --bs-btn-hover-border-color: #163a5a;
}

.im-btn-ghost {
  /* --- CONSERVÉ (lot 02) --- accent sur filet accent, rempli d'accent au survol :
     --bs-btn-color: #1f4e79; --bs-btn-border-color: #1f4e79; --bs-btn-hover-bg: #1f4e79;
     --bs-btn-hover-border-color: #1f4e79;
     --- MODIFIÉ (évolution visuelle, 2026-09-29, seconde version) --- monochrome : encre sur filet
     encre (15,78:1 sur papier), rempli d'encre au survol (papier sur encre, 15,78:1). Le CSS
     critique pose les mêmes couleurs de repos sur .btn-outline-primary. */
  --bs-btn-color: #1a1c20;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: #1a1c20;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #1a1c20;
  --bs-btn-hover-border-color: #1a1c20;
  /* --- NOUVEAU (lot 02, correctif du 2026-09-17, demande de Michael) --- états enfoncé et
     désactivé dans la palette. .btn-outline-primary de Bootstrap les laissait au bleu #0d6efd :
     un bouton secondaire virait au bleu vif pendant le clic, et un bouton désactivé l'était en
     permanence (constat UX-4 de la revue du lot 03, corrigé d'abord pour l'agent seul).
     Enfoncé : accent sombre, texte papier (10,87:1). Désactivé : gris atténué, estompé par
     l'opacité de .btn (un composant inactif est exempté du contraste minimal, WCAG 1.4.3).
     Le bloc sombre .im-cta garde ses propres valeurs (sélecteur plus spécifique). */
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #163a5a;
  --bs-btn-active-border-color: #163a5a;
  --bs-btn-disabled-color: #585d66;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #585d66;
}

/* --- Formulaires -------------------------------------------------------------- */
.im-form {
  max-width: 42rem;
}

.im-form-fieldset {
  padding: 0;
  margin: 0 0 1.5rem;
  border: 0;
}

.im-form-legend {
  float: none;
  width: auto;
  padding: 0;
  margin: 0 0 1.5rem;
  font-size: var(--im-fs-lg);
  font-weight: 600;
  color: var(--im-ink);
}

.im-form-hint,
.im-form-note {
  margin: 0 0 1.5rem;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

.im-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  padding-top: .5rem;
  margin-bottom: 0;
}

/* Récapitulatif des erreurs (conteneur role="alert" en tête de formulaire) et */
/* message de succès (role="status") : mêmes filets que .alert, titre explicite. */
.im-form-errors {
  margin-bottom: 2rem;
}

.im-form-errors-title {
  margin: 0 0 .5rem;
  font-size: var(--im-fs-base);
  font-weight: 600;
  color: var(--im-error);
}

.im-form-errors ul {
  padding-left: 1.25rem;
  margin: 0;
}

.im-form-success {
  margin-bottom: 2rem;
  font-weight: 600;
}

/* Champ : libellé, contrôle, aide, erreur (app/views/pages/_partials/form-field.php). */
/* .im-form-field et .im-form-label restent acceptés (noms du contrat §4). */
.im-field,
.im-form-field {
  margin-bottom: 1.5rem;
}

.im-field-label,
.im-form-label {
  display: block;
  margin-bottom: .375rem;
  font-weight: 600;
}

/* Astérisque de champ requis : redondante avec l'attribut required et avec la */
/* mention lue par les lecteurs d'écran ; la couleur n'ajoute rien à elle seule. */
.im-field-required,
.im-form-required {
  color: var(--im-error);
}

.im-field-help,
.im-form-help {
  display: block;
  margin: .375rem 0 0;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

/* Message d'erreur d'un champ : texte explicite. La couleur rouge de Bootstrap */
/* (.invalid-feedback, 3,9:1 sur papier) ne passe pas AA : jeton --im-error. */
.im-body .im-field-error,
.im-body .im-form-error {
  display: block;
  margin: .375rem 0 0;
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-error);
}

/* Champ invalide : bordure double épaisseur, en plus du message */
.im-body .form-control.is-invalid,
.im-body .form-select.is-invalid,
.im-body .form-check-input.is-invalid {
  padding-right: .75rem;
  background-image: none;
  border-width: 2px;
  border-color: var(--im-error);
}

.im-field-check {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
  align-items: baseline;
  padding-left: 0;
}

.im-field-check .im-field-label,
.im-field-check .form-check-label {
  flex: 1 1 16rem;
  margin-bottom: 0;
  font-weight: 400;
}

.im-field-check .form-check-input {
  flex: 0 0 auto;
  margin-top: 0;
  margin-left: 0;
}

.im-field-check .im-field-help,
.im-field-check .im-field-error {
  flex: 1 1 100%;
}

/* Piège à robots : hors écran, jamais display:none ni visibility:hidden, sinon */
/* les robots cessent de le remplir (contrat §4.2). */
.im-honeypot {
  position: absolute !important;
  top: auto;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- Messages ----------------------------------------------------------------- */
.im-alert {
  padding: 1rem 1.25rem;
  margin-bottom: 2rem;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
  border-left: 3px solid var(--im-accent);
}

.im-alert p {
  margin: 0;
}

.im-alert p + p {
  margin-top: .5rem;
}

.im-alert-title {
  margin: 0 0 .5rem;
  font-size: var(--im-fs-base);
  font-weight: 600;
}

.im-alert-success {
  border-left-color: var(--im-success);
}

.im-alert-success .im-alert-title {
  color: var(--im-success);
}

.im-alert-error {
  border-left-color: var(--im-error);
}

.im-alert-error .im-alert-title {
  color: var(--im-error);
}

/* --- Apparitions au défilement (contrat §6) ----------------------------------- */
/* .im-reveal est posée dans le HTML par les gabarits : elle DÉSIGNE un élément */
/* animable, elle ne le masque pas. Le masquage tient à la seconde classe, */
/* .is-armed, que seul app.js ajoute, et seulement aux éléments encore situés */
/* sous la fenêtre, et seulement si prefers-reduced-motion ne vaut pas reduce. */
/* L'observateur la retire à l'entrée dans la fenêtre : la transition joue. */
/* Sans JavaScript, aucune classe .is-armed n'existe et tout est visible dès le */
/* premier rendu, comme l'exige le contrat §6. */
.im-reveal {
  /* --- CONSERVÉ (lot 02) --- transition: opacity .45s ease-out, transform .45s ease-out;
     --- MODIFIÉ (évolution visuelle, 2026-09-29) --- un peu plus long, amorti par la courbe des
     jetons ; la course part d'un rem. Les cartes redéclarent la même paire dans leur propre
     transition (section « Grille de cartes »). */
  transition: opacity .55s var(--im-ease), transform .55s var(--im-ease);
}

.im-reveal.is-armed {
  opacity: 0;
  transform: translateY(1rem);
}

@media (prefers-reduced-motion: reduce) {
  .im-reveal,
  .im-reveal.is-armed {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* --- NOUVEAU (lot 02, revue) --- Fil d'Ariane (parité de la classe .im-breadcrumb) */
/* app/views/layout/base.php pose <nav class="im-breadcrumb"> depuis le constat A11Y-10, */
/* mais la classe n'était stylée dans aucune des deux feuilles (détecté par */
/* scripts/check-css-parity.php). Un fil d'Ariane est une aide de repérage, pas un titre : */
/* petite taille et encre atténuée. La liste porte déjà .im-list-inline .im-list-plain */
/* (flex, gouttière, sans puce) et le séparateur est un .im-muted aria-hidden. */
.im-breadcrumb {
  margin-bottom: 1.5rem;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

.im-breadcrumb a {
  color: var(--im-accent);
}

/* Dernière étape (page courante) : encre et graisse, jamais la couleur seule. */
.im-breadcrumb [aria-current] {
  font-weight: 600;
  color: var(--im-ink);
}

/* --- NOUVEAU (lot 02, revue) --- A11Y-7 : sémantique des listes --------------- */
/* Safari retire le rôle « list » d'un <ul>/<ol> dont list-style-type calcule à */
/* « none » : sous VoiceOver, l'utilisateur n'entend plus « liste de 4 éléments » */
/* sur la grille des offres, les familles d'intervention, les étapes de la */
/* méthode, le menu, le sélecteur de langue ou le pied de page. Un marqueur de */
/* type CHAÎNE VIDE supprime la puce SANS supprimer le rôle. Là où la valeur */
/* chaîne n'est pas comprise, la déclaration est ignorée et le « list-style: */
/* none » déclaré plus haut continue de s'appliquer : aucune régression visuelle. */
/* Le préfixe .im-body limite la règle au site public et lui donne une */
/* spécificité de 0,2,0, pour qu'elle l'emporte quel que soit l'ordre des */
/* partiels (theme/utilities est importé après theme/public par app.scss, mais */
/* avant la section publique dans resources/css/theme-fallback.css). */
/* Cette règle NE SUFFIT PAS à elle seule : les <ul> et <ol> des gabarits doivent */
/* aussi porter role="list" (app/views/**, hors périmètre de cette feuille). */
.im-body .im-list-plain,
.im-body .im-list-inline,
.im-body .im-nav-list,
.im-body .im-lang-switch-list,
.im-body .im-footer-links,
.im-body .im-footer-nav-list,
.im-body .im-cards,
.im-body .im-projects,
.im-body .im-offers-list,
.im-body .im-card-list,
.im-body .im-steps,
.im-body .im-project-tags {
  list-style-type: "";
}

/* --- NOUVEAU (lot 02, revue) --- A11Y-3 : impression --------------------------- */
/* Dernier filet du dispositif d'apparition : si une page est imprimée ou */
/* enregistrée en PDF pendant qu'un bloc porte encore .is-armed, il ne doit pas */
/* sortir blanc. À l'impression, aucune animation n'a de sens : tout est visible. */
@media print {
  .im-reveal,
  .im-reveal.is-armed {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* --- 8 bis. NOUVEAU (évolution visuelle, 2026-09-29, demande de Michael) ----------------- */
/* Deuxième version, le même jour. La première (surfaces arrondies détachées par une ombre douce
   et soulevées au survol, boutons à angle doux, voile de dégradé sur l'ouverture) a été refusée :
   « c'est trop le style Claude ». Références données par Michael, à ADAPTER et non à copier :
   typeform.com (clair) et drakkar.io (sombre). Ce que les deux ont en commun, et que cette
   version reprend :
     - la typographie fait le travail : un titre d'affichage grand, serré et court (jeton
       --im-fs-display), les titres de section une marche au-dessus (--im-fs-title), les
       surtitres en petites capitales espacées, le chapeau atténué ;
     - des bandes pleine largeur qui alternent, blanc et papier, sans filet entre elles ;
       l'unique bande sombre reste l'appel à l'action (contrat du logo, verrouillé par
       tests/logo-test.php) ;
     - des surfaces plates : un filet fin, un angle franc, AUCUNE ombre, AUCUN soulèvement ;
       au survol, seul le filet fonce ;
     - des boutons en pilule, monochromes : encre pleine, ou filet encre ;
     - un mouvement rare et court : entrée de l'ouverture, apparition au défilement, filet de
       navigation qui se dessine, menus en fondu. Tout est coupé net par prefers-reduced-motion
       (règle globale de la section 2) et à l'impression.
   Ce qui ne change pas : les six jetons de couleur, la pile système, les contrastes AA, les
   gabarits. Miroir exact du bloc de fin de resources/scss/theme/_public.scss. Rien ne vit en
   ligne dans le HTML (politique de sécurité : feuille et nonce seulement). Le back-office n'est
   pas touché : tout est préfixé .im-body ou .js, ou ne concerne que des classes im- du site
   public. Les règles qui changent la mise en page du premier écran sont AUSSI dans le CSS
   critique de app/views/layout/base.php ; tests/seo-test.php verrouille les deux côtés. */

/* Défilement doux vers les ancres ; neutralisé par la règle prefers-reduced-motion. */
html {
  scroll-behavior: smooth;
}

/* Au-delà de 62 em, l'en-tête reste visible au défilement : translucide, flouté, et son filet
   bas fonce dès que la page a bougé (.is-scrolled, posée par app.js) — un filet, pas une ombre.
   Sous 62 em il reste statique : sur deux lignes, il mangerait un tiers d'un écran de téléphone.
   La marge de défilement des ancres suit sa hauteur (92 px). Sans backdrop-filter, le fond reste
   opaque. */
@media (min-width: 62em) {
  html {
    scroll-padding-top: 6.25rem;
  }

  .im-body .im-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    transition: border-color var(--im-dur) var(--im-ease);
  }

  .im-body .im-header.is-scrolled {
    border-bottom-color: #c4c0b6;
  }

  @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
    .im-body .im-header {
      background-color: rgba(247, 246, 242, .84);
      -webkit-backdrop-filter: saturate(140%) blur(14px);
      backdrop-filter: saturate(140%) blur(14px);
    }
  }
}

/* Navigation : liens atténués au repos (#585d66 sur papier, 6,12:1), encre au survol et pour la
   page courante ; le filet d'encre se dessine de gauche à droite sur le trait transparent déjà
   réservé par la boîte du lien (section « Navigation principale » et CSS critique). Monochrome,
   comme dans les deux références : plus d'accent ici. Le CSS critique souligne la page courante
   dès le premier rendu (règle partagée avec le sélecteur de langue, verrouillée par
   tests/lang-switch-test.php) : text-decoration: none, à la spécificité 0,3,1, l'emporte sur elle
   dès l'arrivée de la feuille — sans quoi la page courante porterait DEUX traits. */
.im-body .im-nav-list a,
.im-body .im-nav-link {
  position: relative;
  color: var(--im-muted);
}

.im-body .im-nav-list a::after,
.im-body .im-nav-link::after {
  position: absolute;
  right: 0;
  bottom: -2px;
  left: 0;
  height: 2px;
  content: "";
  background-color: var(--im-ink);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--im-dur) var(--im-ease);
}

.im-body .im-nav-list a:hover,
.im-body .im-nav-list a:focus-visible,
.im-body .im-nav-link:hover,
.im-body .im-nav-link:focus-visible,
.im-body .im-nav-list a[aria-current],
.im-body .im-nav-link[aria-current] {
  color: var(--im-ink);
  text-decoration: none;
  border-bottom-color: transparent;
}

.im-body .im-nav-list a:hover::after,
.im-body .im-nav-list a:focus-visible::after,
.im-body .im-nav-link:hover::after,
.im-body .im-nav-link:focus-visible::after,
.im-body .im-nav-list a[aria-current]::after,
.im-body .im-nav-link[aria-current]::after {
  transform: scaleX(1);
}

/* Dernier lien de la navigation quand c'est la page de contact (classe .im-nav-item-cta posée
   par app/views/layout/_nav.php sur l'élément dont le gabarit est « contact ») : une pilule
   encre, l'appel à l'action permanent des deux références. Réservée au DERNIER élément de la
   liste : ailleurs, une pilule romprait la lecture de la ligne, et aucun « order » CSS n'est
   admis (WCAG 2.4.3). Sa boîte, plus haute que celle des autres liens, est aussi dans le CSS
   critique. Papier sur encre : 15,78:1 ; sur accent sombre (survol, page courante) : 10,87:1. */
.im-body .im-nav-item-cta:last-child a {
  padding: .5rem 1.125rem;
  font-weight: 600;
  color: var(--im-paper);
  background-color: var(--im-ink);
  border-bottom: 0;
  border-radius: 999px;
  transition: background-color var(--im-dur) var(--im-ease);
}

.im-body .im-nav-item-cta:last-child a::after {
  display: none;
}

.im-body .im-nav-item-cta:last-child a:hover,
.im-body .im-nav-item-cta:last-child a:focus-visible,
.im-body .im-nav-item-cta:last-child a[aria-current] {
  color: var(--im-paper);
  background-color: var(--im-accent-dark);
}

/* Boutons : pilules, plus amples (.75rem sur 1.375rem, même boîte dans le CSS critique), sans
   soulèvement ni ombre ; seules les couleurs transitent. Le petit bouton (.btn-sm, page des
   réalisations) garde une boîte réduite. Les couleurs viennent des variables Bootstrap posées
   par .im-btn-primary et .im-btn-ghost (section « Boutons », modifiée : le bouton secondaire est
   désormais encre sur filet encre, et se remplit d'encre au survol) ; le bloc sombre .im-cta
   garde son inversion papier. */
.im-body .btn {
  --bs-btn-padding-x: 1.375rem;
  --bs-btn-padding-y: .75rem;
  border-radius: 999px;
  transition: color var(--im-dur) var(--im-ease), background-color var(--im-dur) var(--im-ease), border-color var(--im-dur) var(--im-ease);
}

.im-body .btn-sm {
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: .5rem;
}

/* Ouverture : titre d'affichage, court et serré, borné à 20 caractères par ligne ; chapeau
   atténué (6,12:1). Entrée en trois temps au chargement — 0,6 s, amortie, décalée de 80 ms — et
   dérive du motif d'escalier vers sa place. L'animation ne joue qu'avec la classe « js » posée
   dès le <head> ; ses images-clés sont AUSSI dans le CSS critique : elle démarre donc au premier
   rendu, et la feuille complète ne fait que la répéter à l'identique, sans clignotement. Avec
   prefers-reduced-motion, la règle globale la ramène à .01 ms ; à l'impression, tout est visible.
   Le voile de dégradé de la première version est retiré : une nappe de couleur est exactement
   l'ornement que Michael ne veut pas. */
.im-body .im-hero {
  position: relative;
  overflow: hidden;
}

.im-body .im-hero-inner {
  z-index: 1;
}

.im-body .im-hero-title {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- graisse 500 au lieu de 600, interligne et interlettrage desserrés, plus de marge. */
  max-width: 20ch;
  margin-bottom: 2rem;
  font-size: var(--im-fs-display);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.02em;
}

.im-body .im-hero-lead {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- plus de marge, interligne plus large. */
  margin-bottom: 2.5rem;
  line-height: 1.65;
  color: var(--im-muted);
}

@keyframes im-rise {
  from {
    opacity: 0;
    transform: translateY(.75rem);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.js .im-hero-title,
.js .im-hero-lead,
.js .im-hero-actions {
  animation: im-rise .6s var(--im-ease) both;
}

.js .im-hero-lead {
  animation-delay: .08s;
}

.js .im-hero-actions {
  animation-delay: .16s;
}

@keyframes im-drift {
  from {
    background-position: right -1rem top 56%;
  }

  to {
    background-position: right -2rem top 50%;
  }
}

.js .im-hero-decor {
  animation: im-drift 1s var(--im-ease) both;
}

@media (max-width: 74.98em) {
  .js .im-hero-decor {
    animation: none;
  }
}

@media print {
  .js .im-hero-title,
  .js .im-hero-lead,
  .js .im-hero-actions,
  .js .im-hero-decor {
    animation: none;
  }
}

/* En-tête des pages intérieures : même titre d'affichage, une marche en dessous, chapeau atténué.
   Sur les gabarits approche, offres, réalisations et contact, .im-page-header ENGLOBE le
   .container (l'inverse du gabarit par défaut) : sa largeur de lecture de 68ch, écrite pour le
   gabarit par défaut, comprimait le conteneur et collait le titre au bord gauche de la fenêtre,
   32 px à gauche du corps de page — mesuré le 2026-09-29 sur /fr/approche à 800 px de large. La
   largeur de lecture passe aux éléments, qui la portent déjà tous (.im-prose) sauf les
   métadonnées. Même levée dans le CSS critique : l'en-tête de page est dans le premier écran. */
.im-body .im-page-header {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- de l'air au-dessus et au-dessous du titre. */
  max-width: none;
  padding: 1.5rem 0 2rem;
}

@media (min-width: 62em) {
  .im-body .im-page-header {
    padding: 3rem 0 3.5rem;
  }
}

.im-body .im-page-meta {
  max-width: var(--im-prose-width);
}

.im-body .im-page-title {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- graisse 500, interligne et interlettrage desserrés. */
  max-width: 22ch;
  font-size: var(--im-fs-display-sm);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.02em;
}

.im-body .im-page-lead {
  color: var(--im-muted);
}

/* Sections : titres à l'échelle d'affichage réduite, surtitres en accent (8,01:1 sur papier,
   8,59:1 sur blanc), et BANDES qui alternent — blanc pour la première section d'une page, papier
   pour la suivante, et ainsi de suite. Le filet entre sections (règle de la section « Sections »,
   gardée pour le CSS critique) devient transparent : deux bandes voisines n'ont jamais la même
   couleur, il ne sépare plus rien. Sur une bande blanche, les cartes passent au papier ; sur une
   bande papier, elles restent blanches. :nth-child(odd of .im-section) ne compte que les sections
   parmi les enfants du même parent (l'ouverture et l'en-tête de page ne comptent pas) ; un
   navigateur qui l'ignore rend tout en papier, sans filet : rien ne casse. L'appel à l'action et
   l'encadré de réacceptation gardent leur fond propre. Plus d'air au-delà de 62 em (5 rem, aussi
   dans le CSS critique) ; l'appel à l'action suit. */
.im-body .im-section-title {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- graisse 500, plus de marge sous le titre. */
  max-width: 24ch;
  margin-bottom: 1.25rem;
  font-size: var(--im-fs-title);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.02em;
}

.im-body .im-section-intro,
.im-body .im-section-lead {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- plus de marge sous l'intro, interligne plus large. */
  max-width: 60ch;
  margin-bottom: 3.5rem;
  line-height: 1.6;
}

.im-body .im-eyebrow,
.im-body .im-card-eyebrow,
.im-body .im-step-label,
.im-body .im-step-number {
  font-size: .75rem;
  color: var(--im-accent);
  letter-spacing: .12em;
}

.im-body .im-section:nth-child(odd of .im-section):not(.im-cta):not(.im-access-reaccept) {
  background-color: var(--im-surface);
}

.im-body .im-section + .im-section {
  border-top-color: transparent;
}

.im-body .im-section:nth-child(odd of .im-section) .im-card,
.im-body .im-section:nth-child(odd of .im-section) .im-project,
.im-body .im-section:nth-child(odd of .im-section) .im-project-featured,
.im-body .im-section:nth-child(odd of .im-section) .im-project-flagship {
  background-color: var(--im-paper);
}

@media (min-width: 62em) {
  .im-body .im-section {
    /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 5 rem → 7 rem. */
    padding: 7rem 0;
  }

  .im-body .im-cta {
    padding: 7rem 0;
  }
}

/* Cartes et surfaces : filet fin, angle franc (1 rem, jeton --im-radius), aucune ombre ; au
   survol le filet fonce (#b9b5ab), rien ne bouge. Illustrations et emplacements de vignettes :
   angle plus court. Étiquettes, bouton de menu et bouton de langue : pilules. */
/* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- les cartes n'ont plus de filet : le survol ne fonce plus rien ; seule la flèche du lien
   avance (bloc 8 ter). Règle conservée vide de sens : border-color: #b9b5ab. */

.im-body .im-card-img,
.im-body .im-project-thumb,
.im-body .im-hero-img,
.im-body .im-cover-img,
.im-body .im-media-slot {
  border-radius: .75rem;
}

.im-body .im-agent-panel,
.im-body .im-alert,
.im-body .alert,
.im-body .im-empty,
.im-body .im-project-featured,
.im-body .im-project-flagship {
  border-radius: var(--im-radius);
}

.im-body .im-nav-toggle,
.im-body .im-project-tag,
.im-body .im-badge {
  border-radius: 999px;
}

/* Champs : anneau clair au focus, en plus du filet accent. */
.im-body .form-control:focus,
.im-body .form-select:focus,
.im-body .im-field-control:focus {
  box-shadow: 0 0 0 3px var(--im-accent-soft);
}

/* Appel à l'action : à-plat encre conservé (seul bloc sombre du site), titre à l'échelle des
   sections, chapeau à la taille du chapeau ; halo d'accent en haut à droite — sur l'encre, c'est
   la lueur des cartes de Drakkar, pas une nappe sur du papier. */
.im-body .im-cta {
  background-image: radial-gradient(60% 90% at 100% 0%, rgba(31, 78, 121, .45), rgba(31, 78, 121, 0));
}

.im-body .im-cta-title {
  max-width: 24ch;
  font-size: var(--im-fs-title);
  line-height: 1.1;
  letter-spacing: -.02em;
}

.im-body .im-cta-text {
  font-size: var(--im-fs-lg);
}

/* Sélecteur de langue et menu mobile : la liste apparaît en fondu court. La liste des langues
   garde son ombre légère, seule exception documentée au parti pris « aucune ombre » (section
   « Sélecteur de langue ») : elle passe au-dessus du contenu et doit s'en détacher. */
@keyframes im-pop {
  from {
    opacity: 0;
    transform: translateY(-.25rem);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.im-body .im-lang-menu[open] .im-lang-switch-list {
  border-radius: var(--im-radius-sm);
  animation: im-pop .18s var(--im-ease);
}

@media (max-width: 47.99em) {
  .js .im-nav-toggle[aria-expanded="true"] + .im-nav-list {
    animation: im-pop .2s var(--im-ease);
  }
}

/* Pied de page : plus d'air, même filet sur fond papier (contrat du logo). */
.im-body .im-footer {
  padding: 3rem 0 2.5rem;
}

/* Titres du pied de page : des surtitres, pas des titres — petites capitales atténuées à
   l'interlettrage des surtitres, comme les colonnes de liens des deux références. */
.im-body .im-footer-title {
  font-size: .75rem;
  color: var(--im-muted);
  letter-spacing: .12em;
}

/* --- 8 ter. NOUVEAU (évolution visuelle, 2026-09-29, troisième version) ------------------ */
/* Michael, devant la seconde version : « je m'attendais à un site dont le thème graphique serait
   plus moderne. De plus le footer est très moche, il donne l'impression de ne pas être terminé. »
   Ce qui manquait, vu en 1280 px : de la profondeur. Un site clair de bout en bout, à filets fins,
   se lit comme une brochure ; les deux références ouvrent et ferment sur du sombre. Cette version
   fait de même, sans rien renier de la seconde :
     - l'en-tête et l'ouverture passent à l'encre, avec un halo d'accent et le motif d'escalier
       redessiné pour le sombre (pattern-hero-dark.svg) ; la signature quitte l'écran de
       l'en-tête et remonte en surtitre de l'ouverture (.im-hero-eyebrow, _home.php) ; le
       monogramme est rendu en silhouette papier par filtre CSS ;
     - le manifeste de l'accueil devient une composition éditoriale : première phrase en grand,
       titres à gauche et textes à droite, la liste « ce qui nous distingue » en grille de quatre
       points cochés ;
     - le pied de page passe à l'encre, en trois colonnes de liens et une ligne de bas de page
       sous un filet : fini l'empilement de petites capitales ;
     - l'ouverture et l'appel à l'action débordent sur les marges de .im-main et de .im-page :
       aucune bande de papier entre l'en-tête et l'ouverture, ni entre l'appel à l'action et le pied.
   Contrat du logo (docs/ARCHITECTURE-SITE-PUBLIC.md §7.1) amendé le même jour : un à-plat sombre
   peut exister partout où il ne porte aucune IMAGE d'identité ; l'en-tête, qui en porte une, la
   rend en silhouette. tests/logo-test.php suit. Tout est préfixé .im-body : rien ne touche le
   back-office, qui partage la feuille mais pas cette classe. Les règles du premier écran sont
   copiées dans le CSS critique de app/views/layout/base.php ; tests/seo-test.php les verrouille. */

/* Lien d'évitement : il se pose sur l'en-tête, désormais à l'encre — papier sur encre, inversé. */
.im-body .im-skip-link:focus {
  color: var(--im-ink);
  background-color: var(--im-paper);
}

/* En-tête à l'encre : filet bas papier atténué, translucide au défilement au-delà de 62 em. */
.im-body .im-header {
  color: var(--im-paper);
  background-color: var(--im-ink);
  border-bottom-color: rgba(247, 246, 242, .12);
}

@media (min-width: 62em) {
  .im-body .im-header.is-scrolled {
    border-bottom-color: rgba(247, 246, 242, .24);
  }

  @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
    .im-body .im-header {
      background-color: rgba(26, 28, 32, .84);
    }
  }
}

.im-body .im-header :focus-visible {
  outline-color: var(--im-paper);
}

.im-body .im-brand {
  color: var(--im-paper);
}

.im-body .im-brand:hover,
.im-body .im-brand:focus-visible {
  color: var(--im-accent-light);
}

/* Silhouette papier du monogramme (variante claire, séparations transparentes) : brightness(0)
   noircit chaque pixel opaque, invert(1) le blanchit, l'alpha est conservé et l'encre se voit à
   travers les séparations ; opacity(.96) rapproche le blanc du papier. La boîte et l'image de fond
   (section « Marque ») ne changent pas ; la variante « fond sombre » n'est toujours pas servie. */
.im-body .im-brand-mark {
  filter: brightness(0) invert(1) opacity(.96);
}

/* La signature quitte l'écran de l'en-tête — un en-tête moderne tient sur une ligne — mais reste
   lue par les lecteurs d'écran (masquage visuel de Bootstrap). L'accueil la remonte en surtitre de
   l'ouverture. Même règle dans le CSS critique : la hauteur de l'en-tête en dépend. */
.im-body .im-header .im-tagline {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Navigation sur encre : papier atténué au repos (#b9b8b5 : 9:1), papier plein au survol et pour
   la page courante, filet papier ; la pilule de contact s'inverse (encre sur papier, 15,78:1). */
.im-body .im-nav-list a,
.im-body .im-nav-link {
  color: rgba(247, 246, 242, .72);
}

.im-body .im-nav-list a::after,
.im-body .im-nav-link::after {
  background-color: var(--im-paper);
}

.im-body .im-nav-list a:hover,
.im-body .im-nav-list a:focus-visible,
.im-body .im-nav-link:hover,
.im-body .im-nav-link:focus-visible,
.im-body .im-nav-list a[aria-current],
.im-body .im-nav-link[aria-current] {
  color: var(--im-paper);
}

.im-body .im-nav-item-cta:last-child a {
  color: var(--im-ink);
  background-color: var(--im-paper);
}

.im-body .im-nav-item-cta:last-child a:hover,
.im-body .im-nav-item-cta:last-child a:focus-visible,
.im-body .im-nav-item-cta:last-child a[aria-current] {
  color: var(--im-ink);
  background-color: #ffffff;
}

/* Bouton Menu (sous 48 em) et bouton de langue : papier ; le filet du bouton Menu contraste à
   4,3:1 sur encre (WCAG 1.4.11). La liste des langues, elle, reste blanche à texte encre. */
.im-body .im-nav-toggle {
  color: var(--im-paper);
  border-color: rgba(247, 246, 242, .45);
}

.im-body .im-lang-toggle {
  color: var(--im-paper);
}

.im-body .im-lang-toggle:hover {
  color: var(--im-accent-light);
}

/* Ouverture à l'encre : halo d'accent en bas à droite (sur l'encre, c'est la lueur de Drakkar,
   pas une nappe sur du papier), surtitre en accent clair, chapeau en papier atténué (9:1), boutons
   inversés comme dans l'appel à l'action, motif d'escalier en papier. L'ouverture remonte sur les
   marges de .im-main (2.5rem) et de .im-page (1.5rem) : elle touche l'en-tête. */
.im-body .im-hero {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- ouverture papier, encre pour le texte ; conservé : color: var(--im-paper);
     background-color: var(--im-ink). L'en-tête et le pied restent à l'encre. */
  margin-top: -4rem;
  color: var(--im-ink);
  background-color: var(--im-paper);
}

.im-body .im-hero::before {
  position: absolute;
  right: -12%;
  bottom: -45%;
  width: 60%;
  height: 130%;
  pointer-events: none;
  content: "";
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- plus de halo sur du papier (une nappe de couleur sur du clair est l'ornement refusé le
     29) ; conservé : background: radial-gradient(closest-side, rgba(31, 78, 121, .4), rgba(31, 78, 121, 0)). */
  display: none;
}

.im-body .im-hero-eyebrow {
  margin: 0 0 1.75rem;
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.4;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- accent sur papier (8,01:1) ; conservé : color: var(--im-accent-light). */
  color: var(--im-accent);
  text-transform: uppercase;
  letter-spacing: .14em;
}

.js .im-hero-eyebrow {
  animation: im-rise .6s var(--im-ease) both;
}

.im-body .im-hero-title {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- conservé : color: var(--im-paper). */
  color: var(--im-ink);
}

.im-body .im-hero-lead {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- conservé : color: rgba(247, 246, 242, .72). */
  color: var(--im-muted);
}

.im-body .im-hero :focus-visible {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- conservé : outline-color: var(--im-paper). */
  outline-color: var(--im-accent);
}

/* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- les boutons inversés de l'ouverture à l'encre (troisième version) ne s'appliquent plus :
   sur papier, .im-btn-primary et .im-btn-ghost (section « Boutons ») suffisent. Conservé :
   .im-body .im-hero .im-btn-primary { papier plein, texte encre } et .im-body .im-hero .im-btn-ghost
   { filet papier, rempli de papier au survol }. */

.im-body .im-hero-decor {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- motif clair de nouveau ; conservé : background-image: url("../img/pattern-hero-dark.svg"). */
  background-image: url("../img/pattern-hero.svg");
  background-size: auto 88%;
}

@media (max-width: 74.98em) {
  .im-body .im-hero-decor {
    background-image: none;
  }
}

.im-body .im-hero-img,
.im-body .im-cover-img,
.im-body .im-hero-figure img {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, cinquième version : « passe l'ouverture en clair pour voir ») --- conservé : border-color: rgba(247, 246, 242, .2). */
  border-color: var(--im-line);
}

/* Appel à l'action en dernier dans la page : il descend sur les marges basses de .im-page (1.5rem)
   et de .im-main (4rem) et touche le pied, à l'encre lui aussi ; le filet du pied les sépare. */
.im-body .im-page > .im-cta:last-child {
  margin-bottom: -5.5rem;
}

/* Manifeste de l'accueil (corps Markdown de la page, bloc « rich ») : la première phrase en grand,
   la liste en grille de points cochés (coche en accent, image de fond en données : img-src
   'self' data:) ; au-delà de 62 em, titres à gauche et textes à droite, un filet par bloc. La
   composition ne dépend que de l'ordre des blocs Markdown (paragraphes, titres, une liste) : si
   Michael réécrit la page, elle suit ; sans grille (navigateur ancien), le flux reste lisible. */
.im-body .im-home-manifesto .im-prose > p:first-child {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- graisse 400, plus de marge. */
  max-width: 40ch;
  margin-bottom: 4rem;
  font-size: clamp(1.375rem, 1.1rem + 1.2vw, 1.875rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.im-body .im-home-manifesto .im-prose > ul {
  display: grid;
  grid-template-columns: 1fr;
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- 1rem → 1.5rem sur 2.5rem. */
  gap: 1.5rem 2.5rem;
  padding: 0;
  list-style: none;
}

.im-body .im-home-manifesto .im-prose > ul > li {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-29, quatrième version : « plus aérée, plus légère ») --- plus de boîte : la coche et l'air suffisent. Conservé : padding: 1.25rem 1.5rem 1.25rem 3.25rem;
     background-color: var(--im-paper); border: 1px solid var(--im-line); border-radius: 1rem. */
  position: relative;
  padding: 0 0 0 2rem;
  margin: 0;
}

.im-body .im-home-manifesto .im-prose > ul > li::before {
  position: absolute;
  top: .35rem;
  left: 0;
  width: 1.125rem;
  height: 1.125rem;
  content: "";
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4e79' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
}

.im-body .im-home-manifesto .im-prose > ul > li > strong {
  display: block;
  margin-bottom: .25rem;
}

@media (min-width: 48em) {
  .im-body .im-home-manifesto .im-prose > ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 62em) {
  .im-body .im-home-manifesto .im-prose {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: 6rem;
    row-gap: 0;
    max-width: none;
  }

  .im-body .im-home-manifesto .im-prose > p:first-child {
    grid-column: 1 / -1;
  }

  .im-body .im-home-manifesto .im-prose > h2 {
    grid-column: 1;
    padding-top: 3rem;
    margin: 0;
    border-top: 1px solid var(--im-line);
  }

  .im-body .im-home-manifesto .im-prose > :not(h2):not(:first-child) {
    grid-column: 2;
  }

  .im-body .im-home-manifesto .im-prose > h2 + * {
    padding-top: 3rem;
    margin-top: 0;
    border-top: 1px solid var(--im-line);
  }
}

/* Cartes d'offre : la flèche du lien avance de 3 px au survol de la carte — le seul mouvement
   des cartes. */
.im-body .im-card-link::after {
  display: inline-block;
  margin-left: .35em;
  content: "\2192";
  transition: transform var(--im-dur) var(--im-ease);
}

.im-body .im-card:hover .im-card-link::after {
  transform: translateX(.2em);
}

/* Pied de page à l'encre : trois colonnes de liens (repères de navigation, titres en petites
   capitales atténuées à 5,6:1, liens papier en colonne), puis une ligne de bas de page sous un
   filet — droits, signature, souveraineté — en papier atténué. Le filet en tête du pied reste (il
   sépare le pied de l'appel à l'action, à l'encre lui aussi). L'ordre du document est conservé. */
.im-body .im-footer {
  padding: 5rem 0 2.5rem;
  color: rgba(247, 246, 242, .72);
  background-color: var(--im-ink);
  border-top-color: rgba(247, 246, 242, .12);
}

.im-body .im-footer-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: start;
}

.im-body .im-footer-nav {
  flex: none;
  margin-bottom: 1rem;
}

@media (min-width: 48em) {
  .im-body .im-footer-inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 2rem;
  }

  .im-body .im-footer-nav {
    margin-bottom: 1.5rem;
  }
}

.im-body .im-footer-title {
  margin: 0 0 1rem;
  color: rgba(247, 246, 242, .55);
}

.im-body .im-footer-nav-list {
  flex-direction: column;
  gap: .625rem;
}

.im-body .im-footer a {
  color: var(--im-paper);
  text-decoration: none;
}

.im-body .im-footer a:hover,
.im-body .im-footer a:focus-visible {
  color: var(--im-paper);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.im-body .im-footer :focus-visible {
  outline-color: var(--im-paper);
}

.im-body .im-footer-copyright,
.im-body .im-footer .im-tagline,
.im-body .im-footer .im-muted,
.im-body .im-footer-links {
  grid-column: 1 / -1;
  font-size: var(--im-fs-sm);
  color: rgba(247, 246, 242, .55);
}

.im-body .im-footer-copyright {
  padding-top: 1.5rem;
  border-top: 1px solid rgba(247, 246, 242, .12);
}

/* .im-muted (section 4, utilitaires) est déclaré avec !important : la ligne de souveraineté du pied
   gardait l'encre atténuée (#585d66 sur encre, 2,4:1). Même poids ici, même papier atténué (5,6:1). */
.im-body .im-footer .im-muted {
  color: rgba(247, 246, 242, .55) !important;
}
/* --- 8 quater. NOUVEAU (évolution visuelle, 2026-09-29, quatrième version) --------------- */
/* Michael, devant la troisième version : « j'aurais souhaité une one page plus aérée, plus légère
   visuellement ». Arbitré par lui : garder les pages, garder l'en-tête et le pied sombres, bouton
   vers la page Contact. Donc de l'AIR (rembourrages et marges plus grands, interligne 1,7, sections
   à 7 rem) et de la LÉGÈRETÉ (tuiles sans filet, points du manifeste sans boîte, titres en graisse
   500 au lieu de 600, halo plus doux). Les valeurs modifiées en place portent la marque « quatrième
   version » ; ce bloc porte ce qui s'ajoute. Copies du premier écran dans le CSS critique. */
.im-body .im-header {
  padding: 1.25rem 0;
}

.im-body .im-nav-list {
  gap: .25rem 2rem;
}

.im-body .im-card-title,
.im-body .im-project-title,
.im-body .im-step-title,
.im-body .im-cta-title,
.im-body .im-prose h2,
.im-body .im-prose h3 {
  font-weight: 500;
}

.im-body .im-project-featured,
.im-body .im-project-flagship {
  padding: 2rem;
  border: 0;
}
/* --- 8 quinquies. NOUVEAU (évolution visuelle, 2026-09-30, cinquième version) ------------ */
/* Michael : « remets des animations discrètes, c'est trop statique lors du défilement ; les vignettes
   sont statiques aussi ». Jusqu'ici, seuls les cartes d'offre, les étapes et l'appel à l'action
   apparaissaient au défilement (app.js, .im-reveal) ; titres, intros, corps de page et projets
   arrivaient d'un bloc.
   Apparitions PILOTÉES PAR LE DÉFILEMENT, en CSS seul (animation-timeline: view()), sous @supports :
   sans JavaScript, sans classe à poser dans les gabarits, sans style en ligne (CSP). Un navigateur
   qui ne les connaît pas affiche tout, immobile. Elles ne touchent qu'opacité et transform : aucune
   incidence sur la mise en page, donc rien à copier dans le CSS critique. La plage est en LONGUEUR
   (entry 0px → 200px) et non en pourcentage : un bloc plus haut que la fenêtre finirait sinon son
   entrée après des centaines de pixels de lecture. Les éléments déjà dans la fenêtre au chargement
   sont à l'état final dès le premier rendu.
   Les cartes d'offre, les étapes et l'appel à l'action gardent l'apparition de app.js, qui les décale
   l'une après l'autre : jamais deux mécanismes sur le même élément.
   prefers-reduced-motion : la règle globale (section 2) ne raccourcit que la durée, sans effet sur
   une animation liée au défilement — elle est retirée explicitement ici, et à l'impression.
   Vignettes : entrée en fondu avec un zoom inverse (1,03 → 1), et zoom léger (1,04) au survol de la
   carte, dans un cadre qui rogne (overflow hidden). */
@keyframes im-view-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes im-view-settle {
  from {
    opacity: 0;
    /* --- MODIFIÉ (évolution visuelle, 2026-09-30, sixième version : « animation de vignette trop discrète ») --- 1,03 → 1,08, et 16 px de montée. */
    transform: scale(1.08) translateY(16px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@supports (animation-timeline: view()) {
  .im-body .im-section-title,
  .im-body .im-section-intro,
  .im-body .im-section-lead,
  .im-body .im-section-more,
  .im-body .im-note,
  .im-body .im-page-body > *,
  .im-body .im-project,
  .im-body .im-project-featured,
  .im-body .im-project-flagship {
    animation: im-view-rise linear both;
    animation-timeline: view();
    animation-range: entry 0px entry 200px;
  }

  .im-body .im-media-slot,
  .im-body .im-card-media,
  .im-body .im-hero-media,
  .im-body .im-cover {
    animation: im-view-settle linear both;
    animation-timeline: view();
    /* --- MODIFIÉ (évolution visuelle, 2026-09-30, sixième version : « animation de vignette trop discrète ») --- 240 → 280 px. */
    animation-range: entry 0px entry 280px;
  }
}

@media (prefers-reduced-motion: reduce), print {
  .im-body .im-section-title,
  .im-body .im-section-intro,
  .im-body .im-section-lead,
  .im-body .im-section-more,
  .im-body .im-note,
  .im-body .im-page-body > *,
  .im-body .im-project,
  .im-body .im-project-featured,
  .im-body .im-project-flagship,
  .im-body .im-media-slot,
  .im-body .im-card-media,
  .im-body .im-hero-media,
  .im-body .im-cover {
    animation: none !important;
  }
}

.im-body .im-card-media {
  overflow: hidden;
  border-radius: .75rem;
}

.im-body .im-media-slot-img,
.im-body .im-card-img,
.im-body .im-project-thumb {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, sixième version : « animation de vignette trop discrète ») --- .7 s → 1.1 s. */
  transition: transform 1.1s var(--im-ease);
}

.im-body .im-project:hover .im-media-slot-img,
.im-body .im-project:hover .im-project-thumb,
.im-body .im-project-featured:hover .im-media-slot-img,
.im-body .im-project-flagship:hover .im-media-slot-img,
.im-body .im-card:hover .im-card-img,
.im-body .im-card:hover .im-media-slot-img {
  /* --- MODIFIÉ (évolution visuelle, 2026-09-30, sixième version : « animation de vignette trop discrète ») --- 1,04 → 1,08. */
  transform: scale(1.08);
}
/* --- 8 sexies. NOUVEAU (évolution visuelle, 2026-09-30, cinquième version) ---------------- */
/* « remets des images ». L'inventaire (workflow du 2026-09-30) a établi que les seules images du site
   sont les cinq vignettes de projets de la médiathèque, servies sur la page portfolio par le bouclier,
   et qu'elles ne peuvent pas être réutilisées ailleurs (signature). Choix de Michael : des
   illustrations dessinées dans les couleurs du thème — une par offre, choisie par son code
   (public/assets/img/offer-<code>.svg, offer-card.php), et un visuel d'ouverture (hero-art.svg,
   _home.php) qui remplace le motif de fond .im-hero-decor. L'ouverture devient une grille à deux
   colonnes au-delà de 62 em : texte à gauche (.im-hero-copy), visuel à droite ; une couverture
   éditoriale (.im-hero-media, partiel cover) prendrait la même place. Le visuel entre en quatrième
   temps après le titre, le chapeau et les actions. Les illustrations d'offre sont des dessins à fond
   transparent posés sur la tuile : ni filet, ni fond, ni angle — la règle générale des vignettes
   (.im-card-img : surface, filet, angle .75rem) est écartée pour elles. Les règles de mise en page
   sont copiées dans le CSS critique (ouverture et cartes d'offre sont dans le premier écran). */
.im-body .im-hero-inner {
  display: grid;
  gap: 2.5rem;
  align-items: center;
}

.im-body .im-hero-copy {
  min-width: 0;
}

.im-body .im-hero-art,
.im-body .im-hero-inner > .im-hero-media {
  margin: 0;
}

.im-body .im-hero-art-img {
  display: block;
  width: 100%;
  max-width: 34rem;
  height: auto;
  margin: 0 auto;
}

@media (min-width: 62em) {
  .im-body .im-hero-inner {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 4rem;
  }

  .im-body .im-hero-art-img {
    max-width: none;
  }
}

.js .im-hero-art {
  animation: im-rise .6s var(--im-ease) both;
  animation-delay: .24s;
}

@media print {
  .js .im-hero-art {
    animation: none;
  }
}

.im-body .im-card-art {
  margin: 0 0 .5rem;
  overflow: visible;
  border-radius: 0;
}

.im-body .im-card-art .im-card-img {
  display: block;
  width: 100%;
  height: auto;
  background-color: transparent;
  border: 0;
  border-radius: 0;
}
/* --- 8 septies. NOUVEAU (évolution visuelle, 2026-09-30, sixième version) ---------------- */
/* Michael : « le site manque d'animation, pas de background dynamique ; animation de vignette trop
   discrètes ». Réponses, toujours en CSS seul — aucun style en ligne, aucun script —, coupées par
   prefers-reduced-motion et à l'impression :
     - un FOND VIVANT sur l'ouverture : deux nappes floues d'accent qui dérivent lentement derrière le
       texte (28 et 36 s, aller-retour, amorties), posées sur les deux pseudo-éléments de .im-hero ;
       et une lueur qui respire dans l'appel à l'action (18 s). Transform et opacité seulement : le
       flou est calculé une fois, jamais ré-animé ; will-change réserve la couche ; sous 48 em, flou
       plus court et nappes plus petites ;
     - le visuel d'ouverture flotte (7 s, aller-retour) ;
     - les vignettes entrent plus franchement (bloc 8 quinquies modifié : zoom 1,08 → 1 et 16 px de
       montée sur 280 px de défilement), zooment à 1,08 au survol en 1,1 s, l'image posée par
       shield.js s'affiche en fondu (.is-loaded), et les cartes se soulèvent de 3 px au survol — sans
       ombre, la couleur opposée à la bande les détache déjà ;
     - les changements de page se fondent (View Transitions inter-documents, navigation: auto) sur les
       navigateurs qui le permettent ; les autres naviguent comme avant.
   Rien ici ne change la mise en page : rien à copier dans le CSS critique. */
@keyframes im-blob-a {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    transform: translate3d(-12%, 10%, 0) scale(1.15);
  }
}

@keyframes im-blob-b {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    transform: translate3d(14%, -12%, 0) scale(1.1);
  }
}

@keyframes im-float {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-10px);
  }
}

@keyframes im-glow {
  from {
    opacity: .7;
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    opacity: 1;
    transform: translate3d(-18%, 12%, 0) scale(1.2);
  }
}

@keyframes im-img-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.im-body .im-hero::before,
.im-body .im-hero::after {
  position: absolute;
  z-index: 0;
  display: block;
  pointer-events: none;
  content: "";
  border-radius: 50%;
  filter: blur(64px);
  will-change: transform;
}

.im-body .im-hero::before {
  top: -20%;
  right: -10%;
  bottom: auto;
  left: auto;
  width: 46vw;
  max-width: 44rem;
  height: 46vw;
  max-height: 44rem;
  background: radial-gradient(closest-side, rgba(143, 180, 216, .55), rgba(143, 180, 216, 0));
  animation: im-blob-a 28s ease-in-out infinite alternate;
}

.im-body .im-hero::after {
  bottom: -30%;
  left: -12%;
  width: 38vw;
  max-width: 36rem;
  height: 38vw;
  max-height: 36rem;
  background: radial-gradient(closest-side, rgba(31, 78, 121, .22), rgba(31, 78, 121, 0));
  animation: im-blob-b 36s ease-in-out infinite alternate;
}

@media (max-width: 47.99em) {
  .im-body .im-hero::before,
  .im-body .im-hero::after {
    filter: blur(40px);
  }

  .im-body .im-hero::before {
    width: 80vw;
    height: 80vw;
  }

  .im-body .im-hero::after {
    width: 60vw;
    height: 60vw;
  }
}

.js .im-hero-art-img {
  animation: im-float 7s ease-in-out infinite alternate;
}

.im-body .im-cta {
  position: relative;
  overflow: hidden;
}

.im-body .im-cta-inner {
  position: relative;
  z-index: 1;
}

.im-body .im-cta::before {
  position: absolute;
  top: -40%;
  right: -10%;
  z-index: 0;
  width: 50vw;
  max-width: 40rem;
  height: 50vw;
  max-height: 40rem;
  pointer-events: none;
  content: "";
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(31, 78, 121, .6), rgba(31, 78, 121, 0));
  filter: blur(40px);
  will-change: transform, opacity;
  animation: im-glow 18s ease-in-out infinite alternate;
}

.im-body .im-media-slot.is-loaded .im-media-slot-img {
  animation: im-img-in .9s var(--im-ease) both;
}

.im-body .im-project:hover .im-media-slot-img,
.im-body .im-project:hover .im-project-thumb,
.im-body .im-project-featured:hover .im-media-slot-img,
.im-body .im-project-flagship:hover .im-media-slot-img {
  transform: scale(1.08);
}

.im-body .im-card:hover,
.im-body .im-project:hover {
  transform: translateY(-3px);
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation-duration: .25s;
}

::view-transition-new(root) {
  animation-duration: .35s;
}

@media (prefers-reduced-motion: reduce), print {
  .im-body .im-hero::before,
  .im-body .im-hero::after,
  .im-body .im-cta::before,
  .js .im-hero-art-img,
  .im-body .im-media-slot.is-loaded .im-media-slot-img {
    animation: none !important;
  }

  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation: none !important;
  }
}
/* --- 8 octies. NOUVEAU (évolution visuelle, 2026-09-30, septième version) ----------------- */
/* « montre-moi le fond en canvas ». Le canevas (app/views/pages/_home.php, <canvas class="im-hero-canvas">)
   couvre l'ouverture derrière le contenu ; public/assets/js/hero-canvas.js le dessine — un réseau de
   postes reliés qui dérive, des signaux qui circulent, le pointeur qui attire — et pose has-canvas sur
   .im-hero : les nappes CSS de la sixième version (8 septies) s'effacent alors. Elles restent le repli
   sans JavaScript, sans canevas 2D, ou sous prefers-reduced-motion, où le canevas est masqué et le
   script ne dessine rien. La boîte (absolu, sur toute l'ouverture, sous le contenu qui est à z-index 1)
   est aussi dans le CSS critique : un <canvas> non stylé fait 300 × 150 px dans le flux — avec le
   repère « position: relative » de l'ouverture et le z-index du contenu, sans quoi l'absolu se calerait
   sur la fenêtre au premier rendu (revue adverse du 2026-09-30, constat majeur). Sous la colonne de
   texte, un voile papier translucide (fond + halo papier, ce n'est pas une ombre) garde au titre et au
   chapeau leur contraste quand un point ou un lien passe dessous (revue : contraste local). */
.im-body .im-hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.no-js .im-hero-canvas {
  display: none;
}

.im-body .im-hero.has-canvas::before,
.im-body .im-hero.has-canvas::after {
  display: none;
}

@media (prefers-reduced-motion: reduce), print {
  .im-body .im-hero-canvas {
    display: none !important;
  }
}

.im-body .im-hero.has-canvas .im-hero-copy {
  background-color: rgba(247, 246, 242, .82);
  box-shadow: 0 0 40px 28px rgba(247, 246, 242, .82);
}
/* --- 8 nonies. NOUVEAU (évolution visuelle, 2026-10-01, huitième version) ----------------- */
/* Michael : « ok garde le canvas », puis « j'imaginais l'image qui commence sous le canevas et qui
   parallaxe juste avant le bloc footer », et « restaure le canvas comme juste avant l'intégration de la
   photo ». Photographie d'abord choisie par lui parmi trois d'Unsplash sans personne identifiable, puis
   remplacée le même jour par une photographie qu'il a fournie (« utilise plutôt cette image » : quatre
   personnes autour d'un plan, visages visibles — provenance, licence et autorisations à sa charge, voir
   public/assets/img/open-space-licence.txt), dérivée en WebP 1920 et 1280 px et JPEG de repli. Elle est posée UNE fois, derrière la page
   (_home.php : .im-page-photo, position: fixed, z-index -1 — sous le flux, au-dessus du fond papier du
   corps, qui se propage à la racine faute de fond sur html), et la page glisse par-dessus : c'est la
   parallaxe. Elle n'apparaît que là où une section la laisse voir : deux FENÊTRES translucides, le
   manifeste juste sous l'ouverture et l'appel à l'action juste avant le pied (encre à 60 %, texte
   papier, coche et liens en accent clair, filets papier atténués) ; les étapes et les offres restent
   des bandes opaques qui la recouvrent en passant. Les règles visent « .im-page-photo ~ … » : elles
   ne jouent que si la couche existe, les autres pages gardant leur appel à l'action encre. Leur
   spécificité (0,6,0 et plus) passe celle de la règle des bandes alternées (0,5,0, section 8 bis).
   En plus du glissement, l'image, haute de 112 % de la fenêtre, remonte de 12 % au fil de toute la
   page (animation-timeline: scroll(root) — pas view(), qui se rapporterait au bloc rogné le plus
   proche, mesuré le même jour sur un premier essai dans l'ouverture) ; sans prise en charge, elle
   reste simplement fixe. Pas de background-attachment: fixed (ignoré par iOS). Sous
   prefers-reduced-motion l'image reste, immobile ; à l'impression la couche est masquée et les fenêtres
   reviennent encre sur papier. La boîte de la couche et les couleurs des fenêtres sont copiées dans le
   CSS critique : le manifeste est dans le premier écran d'un grand moniteur, et sans la boîte l'image
   ferait 1 920 × 1 080 px dans le flux. L'ouverture est revenue à l'identique de la septième version. */
.im-body .im-page-photo {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.im-body .im-page-photo-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 112%;
  object-fit: cover;
  will-change: transform;
}

/* Toute section de l'accueil est opaque par défaut (papier) : les bandes paires n'avaient pas de fond
   et laissaient voir le corps ; avec la couche fixe, elles laisseraient voir la photographie (mesuré :
   les étapes de la méthode formaient une troisième fenêtre, encre sur photographie). Spécificité
   (0,4,0) : sous la règle des bandes alternées (0,5,0, section 8 bis), qui garde le blanc des impaires. */
.im-page.im-home .im-page-photo ~ .im-section {
  background-color: var(--im-paper);
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto,
.im-body .im-page.im-home .im-page-photo ~ .im-section.im-cta {
  color: var(--im-paper);
  /* --- MODIFIÉ (2026-10-01, à la demande de Michael : « passe le voile encre à 60 % ») --- .7 → .6 : la photographie plus présente. */
  background-color: rgba(26, 28, 32, .6);
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto :is(h2, h3, strong) {
  color: var(--im-paper);
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto .im-prose a {
  color: var(--im-accent-light);
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto .im-prose > h2,
.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto .im-prose > h2 + * {
  border-top-color: rgba(247, 246, 242, .25);
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto .im-prose > ul > li::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238fb4d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

.im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto :focus-visible {
  outline-color: var(--im-paper);
}

@keyframes im-page-photo-drift {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-10.7%);
  }
}

@supports (animation-timeline: scroll(root)) {
  .im-body .im-page-photo-img {
    animation: im-page-photo-drift linear both;
    animation-timeline: scroll(root);
  }
}

@media (prefers-reduced-motion: reduce) {
  .im-body .im-page-photo-img {
    animation: none !important;
    transform: none !important;
  }
}

@media print {
  .im-body .im-page-photo {
    display: none;
  }

  .im-body .im-page.im-home .im-page-photo ~ .im-section.im-home-manifesto,
  .im-body .im-page.im-home .im-page-photo ~ .im-section.im-cta {
    color: var(--im-ink);
    background-color: transparent;
  }
}
/* --- 8 decies. NOUVEAU (évolution visuelle, 2026-10-01 et 2026-10-02, neuvième version) ------- */
/* Michael : « anime légèrement le paragraphe audit, outil, agent », puis le lendemain « je voudrais que
   tu animes différemment : fais apparaître de manière séquentielle les étapes 01 après 02 après 03
   avec 60 ms d'intervalle ». « Audit, outil, agent » est le TITRE DE LA MÉTHODE (public.home.method_heading,
   partiel method-steps), dont les étapes 01, 02, 03 sont les .im-step ; le premier temps avait animé
   mot à mot l'intro des OFFRES (« Travailler ensemble »), retiré le 2026-10-02 sans résidu (règles
   .im-word, classe im-words, découpage dans app.js). Ce qui en reste, dans app.js : le correctif de la
   cascade du lot 02 (le délai entre frères était effacé dans le même recalcul de style que le
   démasquage, la transition partait sans délai ; une lecture forcée du style la fait démarrer avec son
   délai) — c'est lui qui rend la séquence visible — et la cadence passée de 70 à 60 ms (STAGGER_MS).
   Troisième temps, le même jour : « augmente les intervalles : 100 ms puis 250 ms puis 500 ms » — la
   liste des étapes porte data-im-stagger="100 250 500" (partiel method-steps), lu par app.js rang par
   rang ; les cartes d'offre gardent rang × 60 ms.
   Les étapes gardent les règles .im-reveal de la section « Apparitions au défilement » : aucune règle
   propre ici. Rappel : pas d'animation liée au défilement pour ce que Michael doit voir, Firefox n'a
   pas animation-timeline (MDN, 2026-10-01). */
/* --- 9. NOUVEAU (lot 03) : agent de contact conversationnel ---------------- */
/* Miroir exact de resources/scss/theme/_agent.scss (regles identiques, commentaires convertis). */
/* --- Bascule formulaire / agent ----------------------------------------------- */
/* Copie des deux règles du CSS critique (app/views/layout/base.php), qui */
/* décident dès le premier rendu : sans JavaScript, l'agent est masqué et le */
/* formulaire classique visible ; avec JavaScript, le formulaire est replié */
/* derrière le lien « préférer le formulaire » (:target), ou déplié par */
/* .is-revealed (agent.js, ou _contact.php après un envoi du formulaire). */
.no-js .im-agent {
  display: none;
}

.js .im-contact-classic:not(.is-revealed):not(:target) {
  display: none;
}

/* Formulaire déplié sous l'agent : même filet qu'entre deux sections. */
.im-contact-classic {
  scroll-margin-top: 1.5rem;
}

.im-contact-classic > .im-section {
  border-top: 1px solid var(--im-line);
}

/* --- Bloc de l'agent ------------------------------------------------------------ */
.im-agent {
  scroll-margin-top: 1.5rem;
}

.im-agent.is-busy {
  cursor: progress;
}

.im-agent-inner {
  max-width: 48rem;
}

.im-agent-panel {
  padding: 1rem;
  margin-bottom: 1.5rem;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
}

.im-agent-panel > :last-child {
  margin-bottom: 0;
}

/* Titre de panneau (h3) : ramené à la marche « lg » de l'échelle. La règle */
/* .im-body h3 de theme/_typography.scss est surchargée par une spécificité */
/* supérieure, sans dépendre de l'ordre des imports. */
.im-body .im-agent-panel-title {
  margin: 0 0 .75rem;
  font-size: var(--im-fs-lg);
  line-height: 1.3;
}

@media (min-width: 48em) {
  .im-agent-panel {
    padding: 1.75rem 2rem;
  }
}

/* Actions : boutons côte à côte, repliés à la ligne sur mobile. */
.im-agent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  margin: 0 0 1rem;
}

.im-agent-note {
  margin: 0;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

/* Message de repli (role="alert") : filets de .alert (theme/_public.scss). */
.im-agent-notice {
  margin-bottom: 1.5rem;
}

/* Lien « préférer le formulaire », sous l'agent. */
.im-agent-switch {
  margin: 0;
  font-size: var(--im-fs-sm);
}

.im-agent-prefer-form {
  font-weight: 600;
}

/* --- Consentement ----------------------------------------------------------------- */
/* Les mentions obligatoires (§9), en liste, repérées par un carré accent décoratif. */
.im-agent-consent,
.im-agent-dialog,
.im-agent-summary {
  border-top: 3px solid var(--im-accent);
}

.im-agent-consent-list {
  display: grid;
  gap: .625rem;
  margin: 0 0 1.25rem;
}

.im-agent-consent-list li {
  position: relative;
  padding-left: 1.25rem;
}

.im-agent-consent-list li::before {
  position: absolute;
  top: .55em;
  left: 0;
  width: .5rem;
  height: .5rem;
  content: "";
  background-color: var(--im-accent);
}

.im-agent-consent-privacy {
  margin-bottom: 1.25rem;
}

/* --- NOUVEAU (lot 03, 2026-09-17) --- mention de langue à la reprise d'une conversation */
/* commencée dans une autre langue : même filet d'accent que la note d'intention, sans graisse. */
.im-agent-lang-note {
  padding-left: 1rem;
  margin-bottom: .75rem;
  border-left: 3px solid var(--im-accent);
}

/* --- Journal de la conversation (role="log") ------------------------------------ */
/* Rôle annoncé par un libellé visible (« Vous », « Agent Ingenia ») : l'alignement */
/* et le fond ne sont que des repères supplémentaires. */
.im-agent-log {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 8rem;
  max-height: min(60vh, 32rem);
  padding: .75rem;
  margin-bottom: .75rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
}

.im-agent-msg {
  max-width: 92%;
  padding: .625rem .875rem;
  border: 1px solid var(--im-line);
}

.im-agent-msg-assistant {
  align-self: flex-start;
  background-color: var(--im-paper);
  border-left: 3px solid var(--im-accent);
}

.im-agent-msg-user {
  align-self: flex-end;
  background-color: var(--im-surface);
  border-color: var(--im-muted);
}

.im-agent-msg-role {
  margin: 0 0 .25rem;
  font-size: var(--im-fs-xs);
  font-weight: 600;
  color: var(--im-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.im-agent-msg-text {
  margin: 0;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Grand écran : plus d'air dans le journal, bulles moins larges. */
@media (min-width: 48em) {
  .im-agent-log {
    padding: 1rem;
  }

  .im-agent-msg {
    max-width: 85%;
  }
}

/* --- Région d'état (role="status") : attente, enregistrement, transcription ------- */
/* Hauteur réservée : l'apparition d'un message ne décale pas la saisie. */
.im-agent-status {
  min-height: 1.6em;
  margin: 0 0 .75rem;
  font-size: var(--im-fs-sm);
  color: var(--im-muted);
}

/* Indicateur d'attente : carré accent pulsé devant le texte (« L'agent prépare */
/* sa réponse… »), qui porte seul l'information. */
.im-agent-status.is-busy::before {
  display: inline-block;
  width: .5rem;
  height: .5rem;
  margin-right: .5rem;
  vertical-align: .1em;
  content: "";
  background-color: var(--im-accent);
  animation: im-agent-pulse 1s ease-in-out infinite alternate;
}

@keyframes im-agent-pulse {
  from {
    opacity: 1;
  }

  to {
    opacity: .25;
  }
}

/* --- Saisie --------------------------------------------------------------------------- */
.im-agent-compose {
  margin: 0;
}

.im-agent-compose .im-field {
  margin-bottom: 1rem;
}

.im-agent-input {
  min-height: 5.5rem;
  resize: vertical;
}

/* Plafond de messages atteint : champ en lecture seule, visiblement inactif. */
.im-agent-input[readonly] {
  color: var(--im-muted);
  background-color: var(--im-paper);
}

/* Erreur du champ de saisie (.im-field-error de theme/_public.scss) ; masquée */
/* par l'attribut hidden tant qu'elle est vide. */
.im-agent-error {
  margin-bottom: 0;
}

/* --- Dictée ----------------------------------------------------------------------------- */
/* Enregistrement en cours : carré d'erreur pulsé, libellé et compteur. Le texte */
/* « Enregistrement en cours » et le libellé « Arrêter la dictée » du bouton */
/* portent l'information ; la couleur ne fait que la souligner. */
.im-agent-recorder {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .625rem;
  align-items: center;
  padding: .5rem .75rem;
  margin: 0 0 1rem;
  font-weight: 600;
  background-color: var(--im-paper);
  border: 1px solid var(--im-error);
  border-left-width: 3px;
}

.im-agent-rec-dot {
  display: inline-block;
  flex: 0 0 auto;
  width: .75rem;
  height: .75rem;
  background-color: var(--im-error);
  animation: im-agent-pulse 1s ease-in-out infinite alternate;
}

.im-agent-rec-label {
  color: var(--im-error);
}

.im-agent-rec-counter {
  color: var(--im-ink);
  font-variant-numeric: tabular-nums;
}

/* Bouton de dictée pendant l'enregistrement : filet et texte d'erreur (8,58:1 */
/* sur blanc), papier sur erreur au survol. */
.im-body .im-agent-voice.is-recording {
  --bs-btn-color: #8a1c1c;
  --bs-btn-border-color: #8a1c1c;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #8a1c1c;
  --bs-btn-hover-border-color: #8a1c1c;
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #8a1c1c;
  --bs-btn-active-border-color: #8a1c1c;
}

/* --- NOUVEAU (lot 03, revue) --- UX-4 : états enfoncé et désactivé des boutons */
/* secondaires de l'agent dans la palette. .im-btn-ghost (theme/_public.scss) ne */
/* redéfinit que le survol : le bleu #0d6efd de .btn-outline-primary s'appliquait. */
/* Enfoncé : accent sombre (--im-accent-dark) ; désactivé : gris atténué */
/* (--im-muted). .im-body .im-agent-voice.is-recording, plus spécifique, reste */
/* prioritaire. */
.im-agent .im-btn-ghost {
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #163a5a;
  --bs-btn-active-border-color: #163a5a;
  --bs-btn-disabled-color: #585d66;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #585d66;
}

/* --- NOUVEAU (lot 03, revue) --- UX-1 : bouton de dictée pendant la demande */
/* d'accès au micro. Il n'est plus désactivé, ce qui lui ferait perdre le focus : */
/* agent.js le marque aria-disabled et ignore ses clics. Même apparence que */
/* l'état désactivé, sans retirer l'anneau de focus. */
.im-agent .im-agent-voice[aria-disabled="true"] {
  color: var(--bs-btn-disabled-color);
  cursor: progress;
  background-color: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
  opacity: var(--bs-btn-disabled-opacity);
}

/* Aide de la dictée, ou message sobre quand elle n'est pas possible. */
.im-agent-voice-note {
  margin: 0;
}

/* --- Récapitulatif : reformulation, champs, modification --------------------------- */
.im-agent-summary {
  scroll-margin-top: 1.5rem;
}

.im-agent-intent-note {
  padding-left: 1rem;
  font-weight: 600;
  border-left: 3px solid var(--im-accent);
}

.im-agent-summary-form {
  margin: 0;
}

.im-agent-summary-view {
  margin-bottom: 1.5rem;
}

.im-agent-reformulation-label {
  margin: 0 0 .375rem;
  font-weight: 600;
}

/* La reformulation est ce qui fait foi : bloc distinct, filet accent. */
.im-agent-reformulation {
  padding: 1rem 1.25rem;
  margin: 0 0 1.5rem;
  white-space: pre-line;
  overflow-wrap: anywhere;
  background-color: var(--im-paper);
  border-left: 3px solid var(--im-accent);
}

.im-agent-summary-list {
  margin: 0;
  border-top: 1px solid var(--im-line);
}

.im-agent-summary-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: .125rem 1rem;
  padding: .625rem 0;
  border-bottom: 1px solid var(--im-line);
}

@media (min-width: 36em) {
  .im-agent-summary-row {
    grid-template-columns: minmax(8rem, 12rem) 1fr;
  }
}

.im-agent-summary-row dt {
  font-size: var(--im-fs-sm);
  font-weight: 600;
  color: var(--im-muted);
}

.im-agent-summary-row dd {
  margin: 0;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Champ non précisé : texte « Non précisé » en italique atténué. */
.im-agent-summary-row dd.is-empty {
  font-style: italic;
  color: var(--im-muted);
}

.im-agent-summary-edit {
  margin-bottom: 1rem;
}

/* --- Demande envoyée ------------------------------------------------------------------ */
.im-agent-done {
  border-left: 3px solid var(--im-success);
}

.im-body .im-agent-done .im-agent-panel-title {
  color: var(--im-success);
}

/* --- Mouvement réduit --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .im-agent-status.is-busy::before,
  .im-agent-rec-dot {
    animation: none;
  }
}

/* --- 10. NOUVEAU (lot 04) : bouclier anti-robots -------------------------- */
/* Miroir exact de resources/scss/theme/_shield.scss (regles identiques, commentaires convertis). */
/* Contrat : docs/ARCHITECTURE-BOT-SHIELD.md section 7 (emplacements de vignettes) et */
/* section 10 (liens pieges). Les deux regles indispensables au premier rendu (pieges */
/* hors ecran, rapport des emplacements) sont aussi recopiees dans le CSS critique de */
/* app/views/layout/base.php. */

/* --- Liens pièges du layout --------------------------------------------------- */
/* Hors écran, JAMAIS display:none ni visibility:hidden : un aspirateur de site lit */
/* les styles et cesserait de suivre un lien explicitement masqué, alors que c'est */
/* précisément ce qu'on attend de lui. Un humain, lui, ne peut ni le voir (hors du */
/* cadre), ni l'atteindre au clavier (tabindex="-1"), ni l'entendre (aria-hidden). */
.im-aux-nav {
  position: absolute !important;
  top: auto;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  white-space: nowrap;
}

/* --- Emplacements de vignettes ------------------------------------------------ */
/* La page portfolio ne contient aucune image : chaque vignette est un bloc vide, */
/* dimensionné par sa classe de rapport, rempli après le chargement par shield.js. */
/* Même cadre que les images du site (à-plat papier, filet de 1 px) : ni le visiteur */
/* sans JavaScript, ni celui dont l'API répond vide ne voit une zone cassée. */
.im-media-slot {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
}

/* Image insérée par shield.js : elle occupe exactement la place réservée, sans */
/* décaler la mise en page (position absolue dans un bloc au rapport fixe). */
.im-media-slot-img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

/* Image du corps éditorial d'un projet : élément en ligne (elle vit dans un */
/* paragraphe), rendu en bloc et espacé comme l'était l'image d'origine. */
.im-body-media {
  margin: 1.5rem 0;
}

/* Jeu fini de rapports (contrat section 7) : la classe la plus proche est choisie */
/* côté serveur à partir des dimensions de la variante dégradée. La CSP interdit tout */
/* style en ligne : aucun rapport calculé n'est écrit dans le HTML. */
.im-ratio-16x10 {
  aspect-ratio: 16 / 10;
}

.im-ratio-4x3 {
  aspect-ratio: 4 / 3;
}

.im-ratio-1x1 {
  aspect-ratio: 1 / 1;
}

.im-ratio-3x2 {
  aspect-ratio: 3 / 2;
}

.im-ratio-16x9 {
  aspect-ratio: 16 / 9;
}

/* Navigateur sans aspect-ratio (Safari 14 et antérieurs) : hauteur minimale de */
/* repli, pour que l'emplacement reste visible et réserve de la place. */
@supports not (aspect-ratio: 16 / 10) {
  .im-media-slot {
    min-height: 12rem;
  }
}

/* --- NOUVEAU (lot 05, 2026-09-23) --- Acces sous NDA -------------------------
   Les six ecrans du parcours d'acces (contrat docs/ARCHITECTURE-ACCES-NDA.md §4).
   Version de repli, equivalente a resources/scss/theme/_public.scss : la chaine Sass n'etant
   pas active sur ce poste, c'est CE fichier qui est reellement servi. Toute modification doit
   etre portee des deux cotes ; scripts/check-css-parity.php verifie que les classes employees
   par les gabarits existent ici. */

.im-access {
  --im-access-gap: 1.5rem;
}

/* La carte de l'acces : ce sur quoi on s'engage, en tete d'ecran. Elle porte
   data-im-shield="keep" cote gabarit, donc elle survit a la degradation du lot 04 — un humain
   mal classe doit voir ce qu'il accepte. */
.im-access-card {
  background: var(--im-surface, #f7f6f2);
  border: 1px solid var(--im-border, #dcd8ce);
  border-radius: 0.5rem;
  padding: 1.25rem;
}

.im-access-card-list {
  display: grid;
  gap: 0.5rem 1rem;
  margin: 0;
}

.im-access-card-list dt {
  font-weight: 600;
}

.im-access-card-list dd {
  margin: 0 0 0.25rem;
}

@media (min-width: 40em) {
  .im-access-card-list {
    grid-template-columns: max-content 1fr;
  }

  .im-access-card-list dt,
  .im-access-card-list dd {
    margin-bottom: 0;
  }
}

/* L'empreinte du texte. Elle se lit caractere par caractere quand on la verifie : chasse fixe
   et coupure autorisee, plutot que de la laisser deborder de l'ecran. */
.im-access-hash {
  font-family: var(--im-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size: 0.875em;
  overflow-wrap: anywhere;
  word-break: break-all;
}

/* Le texte de l'engagement. AUCUNE hauteur maximale, AUCUN defilement interne : mesure, une
   boite de 60 vh multiplie par 1,8 le travail de lecture sur mobile, et un deverrouillage au
   defilement bloquerait toute personne lisant au curseur virtuel d'un lecteur d'ecran
   (contrat §4). Cette absence de contrainte est une decision, pas un oubli : ne pas
   « reparer » en ajoutant un overflow. */
.im-access-document h2,
.im-access-document h3 {
  margin-top: 2rem;
}

.im-access-document h2:first-child,
.im-access-document h3:first-child {
  margin-top: 0;
}

.im-access-text,
.im-access-accept,
.im-access-form,
.im-access-request,
.im-access-sent,
.im-access-code,
.im-access-error {
  margin-top: var(--im-access-gap);
}

/* Les deux cases a cocher : la declaration et l'acceptation. Cible tactile confortable et
   libelle cliquable en entier. */
.im-access-accept .form-check {
  margin-bottom: 0.75rem;
  padding-left: 2rem;
}

.im-access-accept .form-check-input {
  margin-left: -2rem;
  width: 1.15rem;
  height: 1.15rem;
}

.im-access-accept .form-check-label {
  cursor: pointer;
}

/* Le code a six chiffres : grand, en chasse fixe, espace — on le recopie d'un courriel. */
.im-access-code input[type="text"],
.im-access-code input[inputmode="numeric"] {
  font-family: var(--im-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size: 1.5rem;
  letter-spacing: 0.35em;
  max-width: 12ch;
  text-align: center;
}

.im-access-error {
  max-width: 44rem;
}

/* --- NOUVEAU (2026-09-29) --- .im-access-reaccept était employée par app/views/access/nda.php
   (avis « une nouvelle version du texte vous est soumise », role="status") et stylée dans AUCUNE
   des deux feuilles : scripts/check-css-parity.php le signalait en [KO] depuis le lot 05. Avis
   sur surface, filet accent à gauche, centré et borné, comme .im-alert ; la spécificité 0,3,0
   l'emporte sur le remplissage de .im-section (et sur celui de la section 8 bis au-delà de 62 em),
   quel que soit l'ordre des blocs. Miroir exact de resources/scss/theme/_public.scss. */
.im-body .im-section.im-access-reaccept {
  width: min(100% - 1.5rem, 44rem);
  padding: 1rem 1.25rem;
  margin: var(--im-access-gap, 1.5rem) auto 0;
  background-color: var(--im-surface);
  border: 1px solid var(--im-line);
  border-left: 3px solid var(--im-accent);
  border-radius: var(--im-radius);
}

.im-body .im-access-reaccept p {
  margin: 0;
}

.im-body .im-access-reaccept p + p {
  margin-top: .5rem;
}

/* --- IMPRESSION (contrat §11) ------------------------------------------------
   « L'ecran E3 doit s'imprimer proprement — quelqu'un qui s'engage a le droit de garder le
   texte sur papier. » Sans ces regles, imprimer E3 sortait la navigation, le pied de page, les
   deux cases a cocher et les boutons : un document de travail, pas un engagement.
   On imprime le titre, la carte de l'acces et le texte. Rien d'autre. */
@media print {
  .im-access-nda .im-access-accept,
  .im-access-nda .im-form,
  .im-access-nda .im-btn,
  .im-access-nda .btn {
    display: none !important;
  }

  .im-access-nda .im-access-card {
    background: transparent;
    border: 1px solid #000;
    padding: 0.75rem;
  }

  /* L'empreinte doit rester lisible sur le papier : c'est elle qui relie la feuille imprimee
     au texte accepte. */
  .im-access-nda .im-access-hash {
    font-size: 0.8em;
  }

  /* Un article ne se coupe pas en deux entre son titre et sa premiere ligne. */
  .im-access-nda .im-access-document h2,
  .im-access-nda .im-access-document h3 {
    break-after: avoid;
    page-break-after: avoid;
  }

  .im-access-nda .im-access-document p,
  .im-access-nda .im-access-document li {
    orphans: 3;
    widows: 3;
  }
}
/* =============================================================================
 * admin-fallback.css — back-office en CSS pur (lot 01).
 *
 * Utilisé par le build de repli (scripts/build-css.ps1 -Fallback -Target admin) :
 * concaténé APRÈS resources/vendor/bootstrap-<version>-dist/css/bootstrap.min.css
 * (dist complet : formulaires, tableaux, onglets, offcanvas, modales, alertes…)
 * et resources/css/theme-fallback.css (jetons, base, composants et utilitaires
 * du site) dans admin/assets/css/admin.css. Il doit produire le même résultat
 * visuel que la compilation Sass de resources/scss/admin.scss
 * (theme/admin/_layout.scss + theme/admin/_components.scss).
 *
 * Structure : 1. jetons du back-office et surcharges du dist Bootstrap (couleurs
 *             hors variables CSS), 2. mise en page (miroir de _layout.scss),
 *             3. composants (miroir de _components.scss).
 * ============================================================================= */

/* --- 1. Jetons et surcharges du dist Bootstrap ------------------------------------ */
:root {
  --im-admin-sidebar-width: 16rem;
  --im-admin-main-max-width: 1200px;
  --im-admin-topbar-min-height: 3.5rem;
  --im-admin-surface: #fff;
  --im-admin-topbar-bg: #1a1c20;
  --im-admin-topbar-color: #f7f6f2;
}

/* Le dist fige en dur le bleu Bootstrap là où le build Sass dérive de $primary (accent) */
.btn-outline-primary {
  --bs-btn-color: #1f4e79;
  --bs-btn-border-color: #1f4e79;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #1f4e79;
  --bs-btn-hover-border-color: #1f4e79;
  --bs-btn-focus-shadow-rgb: 31, 78, 121;
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #163a5a;
  --bs-btn-active-border-color: #163a5a;
  --bs-btn-active-shadow: none;
  --bs-btn-disabled-color: #1f4e79;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #1f4e79;
}

.btn-outline-secondary {
  --bs-btn-color: #1a1c20;
  --bs-btn-border-color: #d8d5ce;
  --bs-btn-hover-color: #f7f6f2;
  --bs-btn-hover-bg: #585d66;
  --bs-btn-hover-border-color: #585d66;
  --bs-btn-active-color: #f7f6f2;
  --bs-btn-active-bg: #585d66;
  --bs-btn-active-border-color: #585d66;
  --bs-btn-focus-shadow-rgb: 31, 78, 121;
}

.form-control,
.form-select {
  background-color: #fff;
  border-color: #d8d5ce;
}

.form-control:focus,
.form-select:focus {
  border-color: #1f4e79;
  box-shadow: 0 0 0 3px rgba(31, 78, 121, 0.25);
}

.form-check-input:focus {
  border-color: #1f4e79;
  box-shadow: 0 0 0 3px rgba(31, 78, 121, 0.25);
}

.form-check-input:checked {
  background-color: #1f4e79;
  border-color: #1f4e79;
}

.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%231f4e79'/%3e%3c/svg%3e");
}

.form-range::-webkit-slider-thumb {
  background-color: #1f4e79;
}

.form-range::-moz-range-thumb {
  background-color: #1f4e79;
}

.nav-pills {
  --bs-nav-pills-link-active-color: #f7f6f2;
  --bs-nav-pills-link-active-bg: #1f4e79;
}

.nav-link {
  --bs-nav-link-color: #1f4e79;
  --bs-nav-link-hover-color: #163a5a;
}

.pagination {
  --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(31, 78, 121, 0.25);
  --bs-pagination-active-color: #f7f6f2;
  --bs-pagination-active-bg: #1a1c20;
  --bs-pagination-active-border-color: #1a1c20;
}

.dropdown-menu {
  --bs-dropdown-link-active-color: #f7f6f2;
  --bs-dropdown-link-active-bg: #1f4e79;
}

.list-group {
  --bs-list-group-active-color: #f7f6f2;
  --bs-list-group-active-bg: #1f4e79;
  --bs-list-group-active-border-color: #1f4e79;
}

.progress,
.progress-stacked {
  --bs-progress-bar-bg: #1f4e79;
}

.alert {
  border-radius: 0.25rem;
}

/* --- 2. Mise en page (miroir de theme/admin/_layout.scss) ------------------------- */

/* Corps : colonne flex (pied collé en bas), fond papier ;
   « secondaire » Bootstrap = texte atténué du thème (badges .text-bg-secondary) */
.im-admin {
  --bs-secondary-rgb: 88, 93, 102;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  color: #1a1c20;
  background-color: #f7f6f2;
}

/* Barre supérieure sombre (<header class="im-admin-topbar navbar navbar-expand">) */
.im-admin-topbar {
  --bs-navbar-padding-y: 0.5rem;
  --bs-navbar-color: rgba(247, 246, 242, 0.85);
  --bs-navbar-hover-color: #f7f6f2;
  --bs-navbar-active-color: #f7f6f2;
  --bs-navbar-brand-color: #f7f6f2;
  --bs-navbar-brand-hover-color: #f7f6f2;
  --bs-navbar-toggler-border-color: rgba(247, 246, 242, 0.3);
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  min-height: 3.5rem;
  color: #f7f6f2;
  background-color: #1a1c20;
  border-bottom: 1px solid rgba(247, 246, 242, 0.15);
}

.im-admin-topbar .im-admin-brand {
  color: #f7f6f2;
}

.im-admin-topbar .im-admin-brand:hover,
.im-admin-topbar .im-admin-brand:focus-visible {
  color: #f7f6f2;
  text-decoration: underline;
}

/* Sélecteur de langue d'interface (<ul class="nav">) : liens clairs, langue courante en gras */
.im-admin-topbar .nav {
  --bs-nav-link-color: rgba(247, 246, 242, 0.85);
  --bs-nav-link-hover-color: #f7f6f2;
  --bs-nav-link-font-size: 0.9375rem;
}

.im-admin-topbar .nav-link {
  border-radius: 0.25rem;
}

.im-admin-topbar .nav-link.active,
.im-admin-topbar .nav-link[aria-current="page"] {
  font-weight: 600;
  color: #f7f6f2;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
}

/* Contour de focus clair sur fond sombre */
.im-admin-topbar .nav-link:focus-visible {
  outline: 3px solid #f7f6f2;
  outline-offset: 2px;
}

/* Rôle affiché à côté du nom : discret sur fond sombre (.text-bg-secondary est en !important) */
.im-admin-topbar .im-admin-badge-role {
  color: #f7f6f2 !important;
  background-color: rgba(247, 246, 242, 0.18) !important;
}

.im-admin-topbar .btn:focus-visible {
  outline-color: #f7f6f2;
}

/* Lien vers le profil (nom de l'utilisateur) */
.im-admin-user {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
  font-size: 0.9375rem;
  color: #f7f6f2;
  text-decoration: none;
}

.im-admin-user:hover,
.im-admin-user:focus-visible {
  color: #f7f6f2;
  text-decoration: underline;
}

/* Formulaire de déconnexion (POST) rendu en ligne */
.im-admin-logout {
  display: inline;
  margin: 0;
}

/* Corps de page : barre latérale + zone principale */
.im-admin-body {
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
}

/* Barre latérale : offcanvas Bootstrap en dessous de lg, colonne collante à partir de lg */
.im-admin-sidebar {
  --bs-offcanvas-width: 16rem;
  --bs-offcanvas-bg: #f7f6f2;
  --bs-offcanvas-color: #1a1c20;
  --bs-offcanvas-border-color: #d8d5ce;
}

/* Sans les classes offcanvas (repli) : bloc en pleine largeur au-dessus du contenu */
.im-admin-sidebar:not(.offcanvas):not(.offcanvas-lg) {
  width: 100%;
  padding: 1rem;
  border-bottom: 1px solid #d8d5ce;
}

.im-admin-sidebar .offcanvas-header {
  border-bottom: 1px solid #d8d5ce;
}

/* Bootstrap met .offcanvas-body en flex à partir de lg : la navigation reste une colonne */
.im-admin-sidebar .offcanvas-body {
  display: block;
  padding: 1rem 0.75rem;
}

/* Zone principale */
.im-admin-main {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: 1200px;
  outline: 0;
}

.im-admin-page-header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.im-admin-page-title {
  margin-bottom: 0;
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
}

.im-admin-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.im-admin-section {
  margin-bottom: 2rem;
}

.im-admin-section-title {
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
  font-size: 1.25rem;
  border-bottom: 1px solid #d8d5ce;
}

/* Écran d'authentification : contenu centré verticalement, carte 28rem (44rem : enrôlement) */
.im-admin-auth {
  align-items: center;
  justify-content: center;
  padding: 1.5rem 0;
}

.im-admin-auth-wrap {
  width: 100%;
  max-width: 48rem;
}

.im-admin-auth-header .im-admin-brand {
  font-size: 1.25rem;
}

.im-admin-auth-main {
  width: 100%;
  max-width: none;
  padding: 0 0 1.5rem;
  outline: 0;
}

.im-admin-auth-card {
  width: 100%;
  max-width: 28rem;
}

.im-admin-auth-card-wide {
  max-width: 44rem;
}

.im-admin-auth-brand {
  margin-bottom: 1.5rem;
  text-align: center;
}

.im-admin-auth-title {
  margin-bottom: 1rem;
  font-size: 1.375rem;
  text-align: center;
}

.im-admin-auth-help {
  margin-top: 1rem;
  font-size: 0.9375rem;
  color: #585d66;
  text-align: center;
}

/* Enrôlement TOTP (variante sans la grille Bootstrap) */
.im-admin-enroll {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.im-admin-footer {
  padding-top: 1.5rem;
  margin-top: 2.5rem;
  font-size: 0.875rem;
  color: #585d66;
  border-top: 1px solid #d8d5ce;
}

@media (min-width: 768px) {
  .im-admin-enroll {
    grid-template-columns: auto minmax(0, 1fr);
  }
}

@media (min-width: 992px) {
  .im-admin-menu-toggle {
    display: none;
  }

  .im-admin-body {
    display: flex;
    align-items: stretch;
  }

  .im-admin-sidebar {
    position: sticky;
    top: 0;
    flex: 0 0 16rem;
    align-self: flex-start;
    width: 16rem;
    max-height: 100vh;
    padding: 1.25rem 0.75rem;
    overflow-y: auto;
    border-right: 1px solid #d8d5ce;
  }

  .im-admin-sidebar:not(.offcanvas):not(.offcanvas-lg) {
    width: 16rem;
    padding: 1.25rem 0.75rem;
    border-bottom: 0;
  }

  .im-admin-sidebar .offcanvas-body {
    padding: 0;
  }
}

/* --- 3. Composants (miroir de theme/admin/_components.scss) ---------------------- */

/* Marque */
.im-admin-brand {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0 0.5rem;
  align-items: baseline;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: #1a1c20;
  text-decoration: none;
  letter-spacing: -0.015em;
}

.im-admin-brand:hover,
.im-admin-brand:focus-visible {
  color: #1f4e79;
  text-decoration: underline;
}

.im-admin-brand-suffix {
  font-size: 0.875rem;
  font-weight: 400;
  color: #585d66;
  letter-spacing: 0;
}

/* Navigation latérale (<nav class="im-admin-nav"><ul class="nav flex-column">) */
.im-admin-nav ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.im-admin-nav .nav {
  --bs-nav-link-color: #1a1c20;
  --bs-nav-link-hover-color: #163a5a;
  gap: 0.125rem;
}

.im-admin-nav li + li {
  margin-top: 0.125rem;
}

.im-admin-nav .nav-link,
.im-admin-nav a {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  padding: 0.5rem 0.75rem;
  color: #1a1c20;
  text-decoration: none;
  border-left: 3px solid transparent;
  border-radius: 0.25rem;
}

.im-admin-nav .nav-link:hover,
.im-admin-nav a:hover {
  color: #163a5a;
  background-color: rgba(31, 78, 121, 0.08);
}

/* Contour de focus vers l'intérieur : rien ne déborde de la colonne */
.im-admin-nav .nav-link:focus-visible,
.im-admin-nav a:focus-visible {
  outline: 3px solid #1f4e79;
  outline-offset: -3px;
}

.im-admin-nav .nav-link.active,
.im-admin-nav .nav-link[aria-current="page"],
.im-admin-nav a.active,
.im-admin-nav a[aria-current="page"] {
  font-weight: 600;
  color: #1f4e79;
  background-color: rgba(31, 78, 121, 0.08);
  border-left-color: #1f4e79;
}

.im-admin-nav-section {
  padding: 1.25rem 0.75rem 0.375rem;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #585d66;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Cartes : avec .card, variables Bootstrap surchargées ; sans .card, bloc autonome */
.im-admin-card {
  --bs-card-bg: #fff;
  --bs-card-color: #1a1c20;
  --bs-card-border-color: #d8d5ce;
  --bs-card-border-radius: 0.25rem;
  --bs-card-inner-border-radius: 0.25rem;
  --bs-card-spacer-y: 1.25rem;
  --bs-card-spacer-x: 1.25rem;
  --bs-card-cap-bg: #f7f6f2;
  --bs-card-box-shadow: none;
}

.im-admin-card:not(.card) {
  padding: 1.25rem;
  margin-bottom: 1.5rem;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-card-title {
  margin-bottom: 1rem;
  font-size: 1.125rem;
}

.im-admin-card-footer {
  padding-top: 1rem;
  margin-top: 1.25rem;
  border-top: 1px solid #d8d5ce;
}

/* Tableaux : en-têtes discrets, lignes compactes */
.im-admin-table {
  --bs-table-bg: #fff;
  --bs-table-color: #1a1c20;
  --bs-table-border-color: #d8d5ce;
  --bs-table-hover-bg: rgba(31, 78, 121, 0.05);
  margin-bottom: 0;
  font-size: 0.9375rem;
  border: 1px solid #d8d5ce;
}

.im-admin-table th,
.im-admin-table td {
  vertical-align: middle;
}

/* .table-sm garde ses marges réduites (Bootstrap) */
.im-admin-table:not(.table-sm) th,
.im-admin-table:not(.table-sm) td {
  padding: 0.5rem 0.75rem;
}

.im-admin-table thead th {
  font-size: 0.75rem;
  font-weight: 600;
  color: #585d66;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  border-bottom: 2px solid #d8d5ce;
}

/* En-tête de ligne (tableau clé / valeur du tableau de bord) */
.im-admin-table tbody th[scope="row"] {
  font-weight: 600;
  color: #585d66;
  white-space: nowrap;
}

.im-admin-table tbody tr:last-child > * {
  border-bottom: 0;
}

.im-admin-table .im-admin-table-actions {
  text-align: right;
  white-space: nowrap;
}

.im-admin-table .im-admin-table-actions form {
  display: inline;
}

.im-admin-table-empty {
  padding: 2rem 1rem;
  color: #585d66;
  text-align: center;
}

/* Badges de statut : texte foncé sur teinte claire, contraste AA sur papier et sur blanc.
   Chaque classe se suffit à elle-même (avec ou sans .badge de Bootstrap). */
.im-admin-badge-draft,
.im-admin-badge-review,
.im-admin-badge-published,
.im-admin-badge-archived {
  display: inline-block;
  padding: 0.2em 0.55em;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  vertical-align: baseline;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}

.im-admin-badge-draft {
  color: #4f545c;
  background-color: #ebeae5;
  border-color: rgba(79, 84, 92, 0.25);
}

.im-admin-badge-review {
  color: #7a4f00;
  background-color: #f6e8c8;
  border-color: rgba(122, 79, 0, 0.25);
}

.im-admin-badge-published {
  color: #1d6a3a;
  background-color: #d9eee0;
  border-color: rgba(29, 106, 58, 0.25);
}

.im-admin-badge-archived {
  color: #3b3e45;
  background-color: #e1e0dc;
  border-color: rgba(59, 62, 69, 0.25);
}

/* Rôle (admin / editor) : badge Bootstrap .text-bg-secondary, graisse et interlettrage du thème */
.im-admin-badge-role {
  font-weight: 600;
  letter-spacing: 0.02em;
  vertical-align: baseline;
}

.im-admin-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

/* QR code d'enrôlement */
.im-qr {
  display: inline-block;
  padding: 0.75rem;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-qr svg {
  display: block;
  width: 12rem;
  max-width: 100%;
  height: 12rem;
}

/* Étapes de l'enrôlement (<ol class="im-admin-enroll-steps">) */
.im-admin-enroll-steps {
  padding-left: 1.25rem;
  margin-bottom: 1rem;
}

.im-admin-enroll-steps > li {
  padding-left: 0.25rem;
}

.im-admin-enroll-steps > li::marker {
  font-weight: 600;
  color: #1f4e79;
}

/* Champ de saisie du code TOTP (6 chiffres) : monospace, espacé, centré */
.im-admin-code {
  max-width: 14rem;
  font-family: var(--bs-font-monospace);
  font-size: 1.5rem;
  letter-spacing: 0.3em;
  text-align: center;
}

/* Compteurs du tableau de bord */
.im-admin-stats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.im-admin-stat {
  display: block;
  padding: 1rem 1.25rem;
  color: #1a1c20;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

a.im-admin-stat:hover,
a.im-admin-stat:focus-visible {
  color: #1f4e79;
  text-decoration: none;
  border-color: #1f4e79;
}

.im-admin-stat-value {
  display: block;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.im-admin-stat-label {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #585d66;
}

.im-admin-env {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 0.375rem 1.25rem;
  margin: 0;
  font-size: 0.9375rem;
}

.im-admin-env dt {
  font-weight: 600;
}

.im-admin-env dd {
  margin: 0;
  overflow-wrap: anywhere;
}

/* Médiathèque : grille de vignettes */
.im-admin-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: 1rem;
  padding: 0;
  margin: 0 0 1.5rem;
  list-style: none;
}

.im-admin-media-item {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-media-item:hover,
.im-admin-media-item:focus-within {
  border-color: #1f4e79;
}

.im-admin-media-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  color: #585d66;
  background-color: #f7f6f2;
  border-bottom: 1px solid #d8d5ce;
}

.im-admin-media-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.im-admin-media-caption {
  padding: 0.5rem 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.im-admin-media-caption a {
  color: #1a1c20;
  text-decoration: none;
}

.im-admin-media-caption a:hover,
.im-admin-media-caption a:focus-visible {
  text-decoration: underline;
}

.im-admin-media-meta {
  display: block;
  margin-top: 0.125rem;
  color: #585d66;
}

.im-admin-media-preview {
  max-width: 100%;
  height: auto;
  background-color: #f7f6f2;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

/* Aperçu Markdown : même mise en forme de contenu que .im-prose (theme-fallback.css) */
.im-admin-preview {
  min-height: 8rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  overflow: auto;
  background-color: #fff;
  border: 1px dashed #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-preview:empty::before {
  color: #585d66;
  content: attr(data-empty-text);
}

.im-admin-preview h2,
.im-admin-preview h3,
.im-admin-preview h4,
.im-admin-preview h5 {
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
}

.im-admin-preview h2 {
  font-size: 1.75rem;
}

.im-admin-preview h3 {
  font-size: 1.375rem;
}

.im-admin-preview h4 {
  font-size: 1.125rem;
}

.im-admin-preview h5 {
  font-size: 1rem;
  color: #585d66;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.im-admin-preview p,
.im-admin-preview ul,
.im-admin-preview ol,
.im-admin-preview blockquote,
.im-admin-preview pre,
.im-admin-preview hr {
  margin-bottom: 1.25rem;
}

.im-admin-preview ul,
.im-admin-preview ol {
  padding-left: 1.5rem;
}

.im-admin-preview li + li {
  margin-top: 0.25rem;
}

.im-admin-preview ul ul,
.im-admin-preview ul ol,
.im-admin-preview ol ul,
.im-admin-preview ol ol {
  margin-top: 0.25rem;
  margin-bottom: 0;
}

.im-admin-preview blockquote {
  padding: 0.25rem 0 0.25rem 1rem;
  color: #585d66;
  border-left: 3px solid #1f4e79;
}

.im-admin-preview blockquote > :last-child {
  margin-bottom: 0;
}

.im-admin-preview hr {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
  border-top: 1px solid #d8d5ce;
  opacity: 1;
}

.im-admin-preview code {
  padding: 0.1em 0.35em;
  font-size: 0.9em;
  color: #1a1c20;
  background-color: rgba(26, 28, 32, 0.06);
  border-radius: 0.25rem;
}

.im-admin-preview pre {
  padding: 1rem;
  overflow-x: auto;
  font-size: 0.9375rem;
  line-height: 1.5;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-preview pre code {
  padding: 0;
  font-size: inherit;
  background-color: transparent;
}

.im-admin-preview a {
  overflow-wrap: anywhere;
}

.im-admin-preview img {
  max-width: 100%;
  height: auto;
}

.im-admin-preview .im-figure {
  margin: 2rem 0;
}

.im-admin-preview .im-figure img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-preview .im-figure figcaption {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  color: #585d66;
}

.im-admin-preview > :first-child {
  margin-top: 0;
}

.im-admin-preview > :last-child {
  margin-bottom: 0;
}

/* Secret TOTP, codes de secours, mot de passe généré : monospace, sélection en un clic */
.im-admin-secret {
  display: block;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-family: var(--bs-font-monospace);
  font-size: 1.125rem;
  line-height: 1.4;
  color: #1a1c20;
  letter-spacing: 0.08em;
  overflow-wrap: anywhere;
  user-select: all;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-secret-uri {
  font-size: 0.8125rem;
  letter-spacing: 0;
}

.im-admin-secret-list,
.im-admin-recovery-codes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0.5rem;
  padding: 0;
  margin: 0 0 1rem;
  list-style: none;
}

.im-admin-secret-list li,
.im-admin-recovery-codes li {
  padding: 0.5rem 0.75rem;
  font-family: var(--bs-font-monospace);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-align: center;
  user-select: all;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-secret-list code,
.im-admin-recovery-codes code {
  padding: 0;
  font-size: inherit;
  color: #1a1c20;
  background-color: transparent;
}

.im-admin-password-once {
  display: block;
  padding: 0.75rem 1rem;
  font-family: var(--bs-font-monospace);
  font-size: 1.125rem;
  line-height: 1.4;
  color: #1a1c20;
  letter-spacing: 0.06em;
  overflow-wrap: anywhere;
  user-select: all;
  background-color: #fff;
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

/* Code d'erreur (403) sur l'écran d'accès refusé */
.im-admin-error-code {
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
}

/* Formulaires */
.im-admin-form-errors ul {
  padding-left: 1.25rem;
}

.im-admin-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  padding-top: 1rem;
  margin-top: 1.5rem;
  border-top: 1px solid #d8d5ce;
}

.im-admin-form-actions .im-admin-form-danger {
  margin-left: auto;
}

.im-admin-editor textarea,
textarea.im-admin-editor {
  min-height: 22rem;
  font-family: var(--bs-font-monospace);
  font-size: 0.9375rem;
  line-height: 1.5;
  tab-size: 2;
  resize: vertical;
}

.im-admin-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.5rem;
}

.im-admin-lang-tabs {
  margin-bottom: 1.25rem;
}

.im-admin-lang-tabs .nav-link {
  color: #585d66;
}

.im-admin-lang-tabs .nav-link:hover,
.im-admin-lang-tabs .nav-link:focus-visible {
  color: #163a5a;
}

.im-admin-lang-tabs .nav-link.active {
  font-weight: 600;
  color: #1a1c20;
}

.im-admin-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.im-admin-status-actions form {
  display: inline;
}

.im-admin-file-info,
.im-admin-form-help {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #585d66;
}

.im-admin-audit-details {
  font-family: var(--bs-font-monospace);
  font-size: 0.8125rem;
  color: #585d66;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* Messages flash et pagination */
.im-admin-flash {
  margin-bottom: 1rem;
}

.im-admin-pagination .pagination {
  flex-wrap: wrap;
}

/* --- NOUVEAU (lot 01, complément) --- classes posées par les vues (miroir de la même
   section de theme/admin/_components.scss) : sélecteur de langue, filtres, statuts par langue,
   vignettes de la médiathèque, sélecteur de média, éditeur, zone de danger, sous-navigation. */
.im-admin-lang {
  display: flex;
  align-items: center;
}

.im-admin-filters .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  color: #585d66;
}

.im-admin-lang-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.im-admin-lang-statuses .list-inline-item {
  margin-right: 0;
}

.im-admin-media-cell {
  width: 1%;
  white-space: nowrap;
}

.im-admin-thumb {
  display: block;
  width: 5rem;
  max-width: none;
  height: auto;
  background-color: #f7f6f2;
}

.im-admin-thumb-placeholder {
  display: inline-block;
  min-width: 5rem;
  font-weight: 500;
  text-align: center;
  white-space: normal;
}

.im-admin-media-details dt {
  font-weight: 600;
  color: #585d66;
}

.im-admin-media-details dd {
  overflow-wrap: anywhere;
}

.im-admin-picker {
  padding-bottom: 1rem;
}

.im-admin-picker-item {
  --bs-card-border-color: #d8d5ce;
  transition: border-color 0.15s ease-in-out;
}

.im-admin-picker-item:hover,
.im-admin-picker-item:focus-within {
  --bs-card-border-color: #1f4e79;
}

.im-admin-picker-thumb {
  aspect-ratio: 4 / 3;
  min-height: 6rem;
  object-fit: cover;
  color: #585d66;
  background-color: #f7f6f2;
  border-bottom: 1px solid #d8d5ce;
}

.im-admin-content-tabs > .tab-pane {
  outline: 0;
}

.im-admin-content-form .form-text {
  color: #585d66;
}

textarea.im-admin-markdown {
  min-height: 22rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  tab-size: 2;
  resize: vertical;
}

.im-admin-seo > legend {
  float: none;
  width: auto;
  margin-bottom: 0.75rem;
  font-size: 1rem;
}

/* mix(#fff, #dc3545, 96 %) */
.im-admin-danger {
  --bs-card-bg: #fef7f8;
}

.im-admin-recovery-once code {
  color: inherit;
}

.im-admin-subnav .nav {
  --bs-nav-pills-link-active-bg: #1a1c20;
  --bs-nav-pills-link-active-color: #f7f6f2;
  --bs-nav-link-color: #1a1c20;
  --bs-nav-link-hover-color: #163a5a;
}

.im-admin-subnav .nav-link {
  border: 1px solid #d8d5ce;
  border-radius: 0.25rem;
}

.im-admin-subnav .nav-link:hover,
.im-admin-subnav .nav-link:focus-visible {
  border-color: #1f4e79;
}

.im-admin-media-table td {
  vertical-align: middle;
}

.im-admin-picker-grid {
  margin-bottom: 1rem;
}

/* --- NOUVEAU (lot 04) --- tableau de bord Sécurité : badges de niveau et navigateur déclaré.
   Miroir de resources/scss/theme/admin/_components.scss (même section). */
.im-admin-badge-level-0,
.im-admin-badge-level-1,
.im-admin-badge-level-2,
.im-admin-badge-level-3 {
  display: inline-block;
  padding: 0.2em 0.55em;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  vertical-align: baseline;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}

.im-admin-badge-level-0 {
  color: #4f545c;
  background-color: #ebeae5;
  border-color: rgba(79, 84, 92, 0.25);
}

.im-admin-badge-level-1 {
  color: #7a4f00;
  background-color: #f6e8c8;
  border-color: rgba(122, 79, 0, 0.25);
}

.im-admin-badge-level-2 {
  color: #8a3b00;
  background-color: #fbe3d0;
  border-color: rgba(138, 59, 0, 0.25);
}

.im-admin-badge-level-3 {
  color: #8f1d1d;
  background-color: #f6dada;
  border-color: rgba(143, 29, 29, 0.25);
}

.im-admin-security-ua {
  display: inline-block;
  max-width: 22rem;
  overflow-wrap: anywhere;
}
