From eed64cfeb668b091524266cb2882e15164f2d2cc Mon Sep 17 00:00:00 2001 From: Yasser Boulayoune Date: Fri, 6 Mar 2026 18:00:00 +0100 Subject: [PATCH] =?UTF-8?q?Copie=20propre=20du=20code=20final=20de=20Folli?= =?UTF-8?q?ow=20(projet=20d'=C3=A9quipe=20DWWM)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 21 + .gitignore | 5 + README.md | 38 + assests/.gitkeep | 0 assests/css/style.css | 178 + assests/css/styles.css | 11243 ++++++++++++++++ assests/img/Group-49.ico | Bin 0 -> 169022 bytes assests/img/Logo-Wordmark.svg | 89 + assests/img/default_avatar.jpg | Bin 0 -> 8273 bytes assests/img/error403.jpg | Bin 0 -> 43332 bytes assests/img/error404.webp | Bin 0 -> 30196 bytes assests/img/logo.png | Bin 0 -> 237123 bytes assests/js/scripts.js | 26 + assests/styles.css | 11 + composer.json | 22 + composer.lock | 650 + controllers/.gitkeep | 0 controllers/AdminCtrl.php | 105 + controllers/ErrorCtrl.php | 28 + controllers/MotherCtrl.php | 52 + controllers/PageCtrl.php | 39 + controllers/ProjectCtrl.php | 554 + controllers/UserCtrl.php | 334 + ...23bf5795a2721f507c3fc6_0.file_home.tpl.php | 69 + ...2de6dcd14dc34a20b16_0.file_preview.tpl.php | 66 + database/.gitkeep | 0 database/database.sql | 253 + entities/Authorisation.php | 53 + entities/Category.php | 81 + entities/Image.php | 92 + entities/Mother.php | 31 + entities/Project.php | 240 + entities/User.php | 263 + index.php | 32 + models/.gitkeep | 0 models/AuthorisationModel.php | 30 + models/CategoryModel.php | 93 + models/ImageModel.php | 39 + models/MotherModel.php | 24 + models/ProjectModel.php | 320 + models/UserModel.php | 262 + uploads/profiles/.gitkeep | 0 uploads/projects/.gitkeep | 0 views/.gitkeep | 0 views/_partial/apigeo.tpl | 112 + views/_partial/delphoto.tpl | 31 + views/_partial/footer.tpl | 23 + views/_partial/header.tpl | 110 + views/_partial/messages.tpl | 14 + views/_partial/preview.tpl | 111 + views/about.tpl | 197 + views/addedit_project.tpl | 105 + views/admin.tpl | 109 + views/error_403.tpl | 9 + views/error_404.tpl | 9 + views/help.tpl | 245 + views/home.tpl | 43 + views/layout.tpl | 8 + views/login.tpl | 89 + views/mail_message.tpl | 27 + views/mentions.tpl | 287 + views/project.tpl | 75 + views/project_display.tpl | 178 + views/search.tpl | 195 + views/signup.tpl | 278 + views/user.tpl | 88 + views/useredit.tpl | 211 + 67 files changed, 17897 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assests/.gitkeep create mode 100644 assests/css/style.css create mode 100644 assests/css/styles.css create mode 100644 assests/img/Group-49.ico create mode 100644 assests/img/Logo-Wordmark.svg create mode 100644 assests/img/default_avatar.jpg create mode 100644 assests/img/error403.jpg create mode 100644 assests/img/error404.webp create mode 100644 assests/img/logo.png create mode 100644 assests/js/scripts.js create mode 100644 assests/styles.css create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 controllers/.gitkeep create mode 100644 controllers/AdminCtrl.php create mode 100644 controllers/ErrorCtrl.php create mode 100644 controllers/MotherCtrl.php create mode 100644 controllers/PageCtrl.php create mode 100644 controllers/ProjectCtrl.php create mode 100644 controllers/UserCtrl.php create mode 100644 controllers/templates_c/299f75d7692a19207f23bf5795a2721f507c3fc6_0.file_home.tpl.php create mode 100644 controllers/templates_c/c724044e55872f26030b02de6dcd14dc34a20b16_0.file_preview.tpl.php create mode 100644 database/.gitkeep create mode 100644 database/database.sql create mode 100644 entities/Authorisation.php create mode 100644 entities/Category.php create mode 100644 entities/Image.php create mode 100644 entities/Mother.php create mode 100644 entities/Project.php create mode 100644 entities/User.php create mode 100644 index.php create mode 100644 models/.gitkeep create mode 100644 models/AuthorisationModel.php create mode 100644 models/CategoryModel.php create mode 100644 models/ImageModel.php create mode 100644 models/MotherModel.php create mode 100644 models/ProjectModel.php create mode 100644 models/UserModel.php create mode 100644 uploads/profiles/.gitkeep create mode 100644 uploads/projects/.gitkeep create mode 100644 views/.gitkeep create mode 100644 views/_partial/apigeo.tpl create mode 100644 views/_partial/delphoto.tpl create mode 100644 views/_partial/footer.tpl create mode 100644 views/_partial/header.tpl create mode 100644 views/_partial/messages.tpl create mode 100644 views/_partial/preview.tpl create mode 100644 views/about.tpl create mode 100644 views/addedit_project.tpl create mode 100644 views/admin.tpl create mode 100644 views/error_403.tpl create mode 100644 views/error_404.tpl create mode 100644 views/help.tpl create mode 100644 views/home.tpl create mode 100644 views/layout.tpl create mode 100644 views/login.tpl create mode 100644 views/mail_message.tpl create mode 100644 views/mentions.tpl create mode 100644 views/project.tpl create mode 100644 views/project_display.tpl create mode 100644 views/search.tpl create mode 100644 views/signup.tpl create mode 100644 views/user.tpl create mode 100644 views/useredit.tpl diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..924798a --- /dev/null +++ b/.env.example @@ -0,0 +1,21 @@ +# config BDD + +DB_CONNECTION=mysql +DB_HOSTNAME=localhost +DB_DATABASE=projet_folliow +DB_USERNAME= +DB_PASSWORD= + +# image path +IMG_PROJECT_PATH = uploads/projects/ +IMG_USER_PATH = uploads/profiles/ +BASE_URL=http://localhost:8000/ + +# envoi d'e-mails (SMTP) +SMTP_HOST= +SMTP_PORT=587 +SMTP_SECURE=tls +SMTP_USERNAME= +SMTP_PASSWORD= +MAIL_FROM= +MAIL_FROM_NAME=Folliow diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b0195b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/templates_c/ +/vendor/ +.env +uploads/*/* +!uploads/*/.gitkeep diff --git a/README.md b/README.md new file mode 100644 index 0000000..4e54814 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Folliow + +> **Ce dépôt est une copie propre du projet, pas le dépôt de travail.** +> +> Folliow a été développé en équipe de quatre pendant la formation DWWM (CCI Campus Colmar, 2026), dans un dépôt partagé qui reste privé. Son historique contient des éléments qui n'ont pas leur place en public : une clé d'envoi d'e-mails écrite en dur à un moment du projet (corrigée depuis, la configuration passe par le `.env`), les adresses e-mail personnelles des membres de l'équipe et la configuration de déploiement du serveur. +> +> Plutôt que de réécrire l'historique d'un dépôt commun, cette copie publie **le code final tel qu'il a été rendu**, sans historique, sans dépendances installées, sans images envoyées par les utilisateurs de la démo et sans configuration de déploiement. Le code lui-même n'a pas été retouché : les `@author` en tête de chaque fichier indiquent qui a écrit quoi. + +Plateforme de portfolios à mi-chemin entre Behance et LinkedIn : chaque profil met en avant de vrais projets, avec leurs technologies, et on peut suivre les autres membres. + +Démo en ligne : https://php.boulayoune.com · Présentation détaillée : https://yasser.boulayoune.com/realisations/projet-php/ + +## Fonctionnalités + +- Inscription, connexion et gestion du profil +- Création et édition de projets (description, technologies, images) +- Fil de projets, recherche de profils et de projets +- Abonnements entre utilisateurs +- Partage d'un projet par e-mail +- Espace d'administration (catégories, modération) + +## Stack + +- PHP 8 en MVC sans framework (contrôleurs, modèles, entités) +- Smarty pour les gabarits +- MySQL / MariaDB +- PHPMailer pour l'envoi d'e-mails, vlucas/phpdotenv pour la configuration +- HTML, CSS, JavaScript, Bootstrap + +## Installation + +``` +composer install +cp .env.example .env # renseigner l'accès à la base (et le SMTP si besoin) +mysql -u -p < database/database.sql +``` + +Puis servir le dossier avec Apache (ou `php -S localhost:8000`). La base fournie contient trois comptes de démonstration fictifs. diff --git a/assests/.gitkeep b/assests/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assests/css/style.css b/assests/css/style.css new file mode 100644 index 0000000..13d28fb --- /dev/null +++ b/assests/css/style.css @@ -0,0 +1,178 @@ +*{ + margin: 0; + padding: 0; +} +body { + background-color: #f5f5f5; +} + +.navbar { + background-color: #ffffff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + padding: 0.8rem 2rem; + min-height: 64px; + max-height: 64px; +} +.navbar .navbar-collapse { + align-items: center; + } + +.navbar-brand { + font-size: 1.5rem; + font-weight: bold; + color: #0d6efd !important; +} + +.navbar-brand span { + color: #6c757d; +} + +.navbar-nav .nav-link { + color: #333; + font-weight: 500; + padding: 0.5rem 1rem; + margin: 0 0.2rem; + transition: color 0.3s; +} +.nav-avatar { + width: 36px; + height: 36px; + object-fit: cover; + border-radius: 50%; + display: block; + } +.navbar-nav .nav-link:hover { + color: #0d6efd; +} + +.btn-login { + color: #333; + background-color: transparent; + border: none; + font-weight: 500; + padding: 0.5rem 1rem; +} + +.btn-login:hover { + color: #0d6efd; +} + +.btn-signup { + background-color: #0d6efd; + color: white; + border: none; + border-radius: 25px; + padding: 0.5rem 2rem; + font-weight: 500; + transition: background-color 0.3s; +} + +.btn-signup:hover { + background-color: #0b5ed7; +} + +.notification-bell { + font-size: 1.2rem; + color: #6c757d; + margin-right: 1rem; + cursor: pointer; + transition: color 0.3s; +} + +.notification-bell:hover { + color: #0d6efd; +} + +.logo-image { + height: 30px; + width: auto; + margin-right: 0.5rem; +} +.logo{ + font-size: 5rem; + font-weight: 700; + background: linear-gradient(90deg, #667eea 0%, #764ba2 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.article-card { + height: 400px; +} + +.article-img { + height: 50px; + width: 100%; + overflow: hidden; +} +.article-content { + height: 20%; + padding: 0.75rem; +} + +.footer{ + color: white; + background-color: #6A6ED4; +} + +.footer ul{ + list-style: none; +} + +.footer a{ + text-decoration: none; + color: white; +} + +.txt_title { + color: rgb(51, 152, 217); +} + +/* On cible la card sans casser ses propriétés Bootstrap */ +.tiger-theme { + background-color: #ff8c00 !important; /* Orange tigre */ + background-image: repeating-linear-gradient( + 45deg, + transparent, + transparent 30px, + rgba(0, 0, 0, 0.15) 30px, + rgba(0, 0, 0, 0.15) 60px + ) !important; + border: 2px solid #000 !important; + color: #000 !important; + position: relative; + z-index: 1; +} + +/* Style du texte pour qu'il ressorte sur l'orange */ +.tiger-text { + font-weight: 800 !important; + text-transform: uppercase; + color: #000 !important; +} + +.tiger-date { + font-size: 0.8rem; + font-weight: bold; + color: rgba(0, 0, 0, 0.7); +} + +/* Bordure de l'image (n'affecte pas la taille de la card) */ +.tiger-border { + box-shadow: 0 0 0 4px #000; +} + +/* Bouton style tigre */ +.btn-tiger { + background-color: #000 !important; + color: #ff8c00 !important; + border: none !important; + font-weight: bold !important; + transition: transform 0.2s; +} + +.btn-tiger:hover { + transform: scale(1.05); + background-color: #222 !important; +} \ No newline at end of file diff --git a/assests/css/styles.css b/assests/css/styles.css new file mode 100644 index 0000000..2ac9d24 --- /dev/null +++ b/assests/css/styles.css @@ -0,0 +1,11243 @@ +@charset "UTF-8"; +/*! +* Start Bootstrap - SB Admin v7.0.7 (https://startbootstrap.com/template/sb-admin) +* Copyright 2013-2023 Start Bootstrap +* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-sb-admin/blob/master/LICENSE) +*/ +/*! + * Bootstrap v5.2.3 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --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-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --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-bg: #fff; + --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-2xl: 2rem; + --bs-border-radius-pill: 50rem; + --bs-link-color: #0d6efd; + --bs-link-hover-color: #0a58ca; + --bs-code-color: #d63384; + --bs-highlight-bg: #fff3cd; +} + +*, +*::before, +*::after { + 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: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +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 + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.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; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: var(--bs-link-color); + text-decoration: underline; +} +a:hover { + color: var(--bs-link-hover-color); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.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: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +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; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]: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: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::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: 0.5rem; +} + +.initialism { + font-size: 0.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: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid var(--bs-border-color); + border-radius: 0.375rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.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(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.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.3333333333%; +} + +.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.6666666667%; +} + +.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.3333333333%; + } + .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.6666666667%; + } + .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.3333333333%; + } + .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.6666666667%; + } + .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.3333333333%; + } + .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.6666666667%; + } + .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.3333333333%; + } + .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.6666666667%; + } + .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.3333333333%; + } + .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.6666666667%; + } + .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, .datatable-table { + --bs-table-color: var(--bs-body-color); + --bs-table-bg: transparent; + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-body-color); + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: var(--bs-body-color); + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: var(--bs-body-color); + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: var(--bs-table-color); + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > *, .datatable-table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody, .datatable-table > tbody { + vertical-align: inherit; +} +.table > thead, .datatable-table > thead { + vertical-align: bottom; +} + +.table-group-divider { + border-top: 2px solid currentcolor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > *, .datatable-table > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > *, .datatable-table > :not(caption) > * > * { + border-width: 0 1px; +} + +.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-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover > *, .datatable-table > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #bacbe6; + --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: #cbccce; + --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: #bcd0c7; + --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: #badce3; + --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: #e6dbb9; + --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: #dfc2c4; + --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: #dfe0e1; + --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: #373b3e; + --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, .datatable-wrapper .datatable-container { + 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: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.form-control, .datatable-input { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control, .datatable-input { + transition: none; + } +} +.form-control[type=file], [type=file].datatable-input { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]), [type=file].datatable-input:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus, .datatable-input:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value, .datatable-input::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::-moz-placeholder, .datatable-input::-moz-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::placeholder, .datatable-input::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, .datatable-input:disabled { + background-color: #e9ecef; + opacity: 1; +} +.form-control::file-selector-button, .datatable-input::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + 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; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button, .datatable-input::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button, .datatable-input:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control, textarea.datatable-input { + min-height: calc(1.5em + 0.75rem + 2px); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: 0.375rem; +} +.form-control-color::-webkit-color-swatch { + border-radius: 0.375rem; +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + 2px); +} + +.form-select, .datatable-selector { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: 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"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select, .datatable-selector { + transition: none; + } +} +.form-select:focus, .datatable-selector:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], [multiple].datatable-selector, .form-select[size]:not([size="1"]), [size].datatable-selector:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled, .datatable-selector:disabled { + background-color: #e9ecef; +} +.form-select:-moz-focusring, .datatable-selector:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.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 { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.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 0.25rem rgba(13, 110, 253, 0.25); +} +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} +.form-check-input:checked[type=checkbox] { + background-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] { + background-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; + background-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: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: 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"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: 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; + background-image: 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: 0.65; +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} +@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: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@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: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, .form-floating > .datatable-input, +.form-floating > .form-control-plaintext, +.form-floating > .form-select, +.form-floating > .datatable-selector { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, .form-floating > .datatable-input, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder, .form-floating > .datatable-input::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder, .form-floating > .datatable-input::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .datatable-input:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .datatable-input:focus, .form-floating > .form-control:not(:placeholder-shown), .form-floating > .datatable-input:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, .form-floating > .datatable-input:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select, .form-floating > .datatable-selector { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label, .form-floating > .datatable-input:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, .form-floating > .datatable-input:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .datatable-input:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label, +.form-floating > .datatable-selector ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label, .form-floating > .datatable-input:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control-plaintext ~ label { + border-width: 1px 0; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, .input-group > .datatable-input, +.input-group > .form-select, +.input-group > .datatable-selector, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, .input-group > .datatable-input:focus, +.input-group > .form-select:focus, +.input-group > .datatable-selector:focus, +.input-group > .form-floating:focus-within { + 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: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.375rem; +} + +.input-group-lg > .form-control, .input-group-lg > .datatable-input, +.input-group-lg > .form-select, +.input-group-lg > .datatable-selector, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.5rem; +} + +.input-group-sm > .form-control, .input-group-sm > .datatable-input, +.input-group-sm > .form-select, +.input-group-sm > .datatable-selector, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.25rem; +} + +.input-group-lg > .form-select, .input-group-lg > .datatable-selector, +.input-group-sm > .form-select, +.input-group-sm > .datatable-selector { + padding-right: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.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) > .datatable-input, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .datatable-selector { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.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) > .datatable-input, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .datatable-selector { + 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: -1px; + 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) > .datatable-input, +.input-group > .form-floating:not(:first-child) > .form-select, +.input-group > .form-floating:not(:first-child) > .datatable-selector { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.375rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .was-validated .datatable-input:valid, .form-control.is-valid, .is-valid.datatable-input { + border-color: #198754; + padding-right: calc(1.5em + 0.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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .was-validated .datatable-input:valid:focus, .form-control.is-valid:focus, .is-valid.datatable-input:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated textarea.form-control:valid, .was-validated textarea.datatable-input:valid, textarea.form-control.is-valid, textarea.is-valid.datatable-input { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .was-validated .datatable-selector:valid, .form-select.is-valid, .is-valid.datatable-selector { + border-color: #198754; +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .datatable-selector:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .was-validated .datatable-selector:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .is-valid.datatable-selector:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"], .is-valid.datatable-selector:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: 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"), 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-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .was-validated .datatable-selector:valid:focus, .form-select.is-valid:focus, .is-valid.datatable-selector:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #198754; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #198754; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #198754; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .was-validated .input-group > .datatable-input:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .input-group > .datatable-input:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.was-validated .input-group > .datatable-selector:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.input-group > .datatable-selector:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.375rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .was-validated .datatable-input:invalid, .form-control.is-invalid, .is-invalid.datatable-input { + border-color: #dc3545; + padding-right: calc(1.5em + 0.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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .was-validated .datatable-input:invalid:focus, .form-control.is-invalid:focus, .is-invalid.datatable-input:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, .was-validated textarea.datatable-input:invalid, textarea.form-control.is-invalid, textarea.is-invalid.datatable-input { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .was-validated .datatable-selector:invalid, .form-select.is-invalid, .is-invalid.datatable-selector { + border-color: #dc3545; +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .datatable-selector:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .was-validated .datatable-selector:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .is-invalid.datatable-selector:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"], .is-invalid.datatable-selector:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: 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"), 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-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .was-validated .datatable-selector:invalid:focus, .form-select.is-invalid:focus, .is-invalid.datatable-selector:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #dc3545; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #dc3545; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .was-validated .input-group > .datatable-input:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .input-group > .datatable-input:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.was-validated .input-group > .datatable-selector:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.input-group > .datatable-selector:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-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: #212529; + --bs-btn-bg: transparent; + --bs-btn-border-width: 1px; + --bs-btn-border-color: transparent; + --bs-btn-border-radius: 0.375rem; + --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 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; +} +@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, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + 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, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + 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: none; + --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-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: 0.5rem; +} + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: 0.25rem; +} + +.fade { + transition: opacity 0.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 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.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: #212529; + --bs-dropdown-bg: #fff; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: 0.375rem; + --bs-dropdown-border-width: 1px; + --bs-dropdown-inner-border-radius: calc(0.375rem - 1px); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-dropdown-link-color: #212529; + --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-bg: #e9ecef; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --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: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.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: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.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: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.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; +} +.dropdown-item:hover, .dropdown-item:focus { + 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: 0.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 > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group { + border-radius: 0.375rem; +} +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.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:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .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: #6c757d; + 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; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link.disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: 1px; + --bs-nav-tabs-border-color: #dee2e6; + --bs-nav-tabs-border-radius: 0.375rem; + --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6; + --bs-nav-tabs-link-active-color: #495057; + --bs-nav-tabs-link-active-bg: #fff; + --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff; + 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)); + background: none; + 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:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + 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: 0.375rem; + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: var(--bs-nav-pills-border-radius); +} +.nav-pills .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + background-color: transparent; + border-color: transparent; +} +.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-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + 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(0, 0, 0, 0.55); + --bs-navbar-hover-color: rgba(0, 0, 0, 0.7); + --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3); + --bs-navbar-active-color: rgba(0, 0, 0, 0.9); + --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(0, 0, 0, 0.9); + --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9); + --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%280, 0, 0, 0.55%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(0, 0, 0, 0.1); + --bs-navbar-toggler-border-radius: 0.375rem; + --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-sm, +.navbar > .container-md, +.navbar > .container-lg, +.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:hover, .navbar-brand:focus { + 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 .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--bs-navbar-active-color); +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + 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 { + --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"); +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-border-width: 1px; + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: 0.375rem; + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(0.375rem - 1px); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(0, 0, 0, 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: #fff; + --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); + 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); +} + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; +} + +.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(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.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(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.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-top, +.card-img-bottom { + 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-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + 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-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion { + --bs-accordion-color: #212529; + --bs-accordion-bg: #fff; + --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: 1px; + --bs-accordion-border-radius: 0.375rem; + --bs-accordion-inner-border-radius: calc(0.375rem - 1px); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: #212529; + --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='%23212529'%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-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='%230c63e4'%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-focus-border-color: #86b7fe; + --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: #0c63e4; + --bs-accordion-active-bg: #e7f1ff; +} + +.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; + border-color: var(--bs-accordion-btn-focus-border-color); + 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-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-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-collapse { + border-width: 0; +} +.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-button, .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +.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: #6c757d; + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: #6c757d; + 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, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.pagination, .datatable-pagination ul { + --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: #fff; + --bs-pagination-border-width: 1px; + --bs-pagination-border-color: #dee2e6; + --bs-pagination-border-radius: 0.375rem; + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: #e9ecef; + --bs-pagination-hover-border-color: #dee2e6; + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: #e9ecef; + --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: #6c757d; + --bs-pagination-disabled-bg: #fff; + --bs-pagination-disabled-border-color: #dee2e6; + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link, .datatable-pagination a { + 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 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; +} +@media (prefers-reduced-motion: reduce) { + .page-link, .datatable-pagination a { + transition: none; + } +} +.page-link:hover, .datatable-pagination a: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, .datatable-pagination a: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); +} +.page-link.active, .datatable-pagination a.active, .active > .page-link, .datatable-pagination .active > a { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .datatable-pagination a.disabled, .disabled > .page-link, .datatable-pagination .disabled > a { + 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, .page-item:not(:first-child) .datatable-pagination a, .datatable-pagination .page-item:not(:first-child) a, .datatable-pagination li:not(:first-child) .page-link, .datatable-pagination li:not(:first-child) a { + margin-left: -1px; +} +.page-item:first-child .page-link, .page-item:first-child .datatable-pagination a, .datatable-pagination .page-item:first-child a, .datatable-pagination li:first-child .page-link, .datatable-pagination li:first-child a { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} +.page-item:last-child .page-link, .page-item:last-child .datatable-pagination a, .datatable-pagination .page-item:last-child a, .datatable-pagination li:last-child .page-link, .datatable-pagination li:last-child a { + 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: 0.5rem; +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: 0.25rem; +} + +.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: 0.375rem; + 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: 1px solid var(--bs-alert-border-color); + --bs-alert-border-radius: 0.375rem; + 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; +} + +.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: #084298; + --bs-alert-bg: #cfe2ff; + --bs-alert-border-color: #b6d4fe; +} +.alert-primary .alert-link { + color: #06357a; +} + +.alert-secondary { + --bs-alert-color: #41464b; + --bs-alert-bg: #e2e3e5; + --bs-alert-border-color: #d3d6d8; +} +.alert-secondary .alert-link { + color: #34383c; +} + +.alert-success { + --bs-alert-color: #0f5132; + --bs-alert-bg: #d1e7dd; + --bs-alert-border-color: #badbcc; +} +.alert-success .alert-link { + color: #0c4128; +} + +.alert-info { + --bs-alert-color: #055160; + --bs-alert-bg: #cff4fc; + --bs-alert-border-color: #b6effb; +} +.alert-info .alert-link { + color: #04414d; +} + +.alert-warning { + --bs-alert-color: #664d03; + --bs-alert-bg: #fff3cd; + --bs-alert-border-color: #ffecb5; +} +.alert-warning .alert-link { + color: #523e02; +} + +.alert-danger { + --bs-alert-color: #842029; + --bs-alert-bg: #f8d7da; + --bs-alert-border-color: #f5c2c7; +} +.alert-danger .alert-link { + color: #6a1a21; +} + +.alert-light { + --bs-alert-color: #636464; + --bs-alert-bg: #fefefe; + --bs-alert-border-color: #fdfdfe; +} +.alert-light .alert-link { + color: #4f5050; +} + +.alert-dark { + --bs-alert-color: #141619; + --bs-alert-bg: #d3d3d4; + --bs-alert-border-color: #bcbebf; +} +.alert-dark .alert-link { + color: #101214; +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: #e9ecef; + --bs-progress-border-radius: 0.375rem; + --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.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: #212529; + --bs-list-group-bg: #fff; + --bs-list-group-border-color: rgba(0, 0, 0, 0.125); + --bs-list-group-border-width: 1px; + --bs-list-group-border-radius: 0.375rem; + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: #495057; + --bs-list-group-action-hover-color: #495057; + --bs-list-group-action-hover-bg: #f8f9fa; + --bs-list-group-action-active-color: #212529; + --bs-list-group-action-active-bg: #e9ecef; + --bs-list-group-disabled-color: #6c757d; + --bs-list-group-disabled-bg: #fff; + --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:hover, .list-group-item-action:focus { + 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 { + color: #084298; + background-color: #cfe2ff; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} + +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} + +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} + +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} + +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} + +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} + +.list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} + +.btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent 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") center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} + +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.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(255, 255, 255, 0.85); + --bs-toast-border-width: 1px; + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: 0.375rem; + --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-toast-header-color: #6c757d; + --bs-toast-header-bg: rgba(255, 255, 255, 0.85); + --bs-toast-header-border-color: rgba(0, 0, 0, 0.05); + 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: -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(-0.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: #fff; + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: 1px; + --bs-modal-border-radius: 0.5rem; + --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-modal-inner-border-radius: calc(0.5rem - 1px); + --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: 1px; + --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: 1px; + 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 0.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; + justify-content: space-between; + 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) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.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) * 0.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) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + .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-header, +.modal-fullscreen .modal-footer { + 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-header, + .modal-fullscreen-sm-down .modal-footer { + 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-header, + .modal-fullscreen-md-down .modal-footer { + 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-header, + .modal-fullscreen-lg-down .modal-footer { + 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-header, + .modal-fullscreen-xl-down .modal-footer { + 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-header, + .modal-fullscreen-xxl-down .modal-footer { + 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: #fff; + --bs-tooltip-bg: #000; + --bs-tooltip-border-radius: 0.375rem; + --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; + padding: var(--bs-tooltip-arrow-height); + 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-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.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: #fff; + --bs-popover-border-width: 1px; + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: 0.5rem; + --bs-popover-inner-border-radius: calc(0.5rem - 1px); + --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: ; + --bs-popover-header-bg: #f0f0f0; + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: #212529; + --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::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .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-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .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-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.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 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + 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: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.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%; + list-style: none; +} +.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: 0.5; + transition: opacity 0.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-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + 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) /* rtl:ignore */; + } +} +.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-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --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: ; + --bs-offcanvas-bg: #fff; + --bs-offcanvas-border-width: 1px; + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); +} + +@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: transform 0.3s ease-in-out; + } +} +@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%); + } +} +@media (max-width: 575.98px) { + .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%); + } +} +@media (max-width: 575.98px) { + .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%); + } +} +@media (max-width: 575.98px) { + .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%); + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + 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: transform 0.3s ease-in-out; + } +} +@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%); + } +} +@media (max-width: 767.98px) { + .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%); + } +} +@media (max-width: 767.98px) { + .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%); + } +} +@media (max-width: 767.98px) { + .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%); + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + 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: transform 0.3s ease-in-out; + } +} +@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%); + } +} +@media (max-width: 991.98px) { + .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%); + } +} +@media (max-width: 991.98px) { + .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%); + } +} +@media (max-width: 991.98px) { + .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%); + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + 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: transform 0.3s ease-in-out; + } +} +@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%); + } +} +@media (max-width: 1199.98px) { + .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%); + } +} +@media (max-width: 1199.98px) { + .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%); + } +} +@media (max-width: 1199.98px) { + .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%); + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + 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: transform 0.3s ease-in-out; + } +} +@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%); + } +} +@media (max-width: 1399.98px) { + .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%); + } +} +@media (max-width: 1399.98px) { + .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%); + } +} +@media (max-width: 1399.98px) { + .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%); + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + 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: transform 0.3s ease-in-out; +} +@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.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + 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: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.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: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.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(13, 110, 253, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: #0d6efd !important; +} +.link-primary:hover, .link-primary:focus { + color: #0a58ca !important; +} + +.link-secondary { + color: #6c757d !important; +} +.link-secondary:hover, .link-secondary:focus { + color: #565e64 !important; +} + +.link-success { + color: #198754 !important; +} +.link-success:hover, .link-success:focus { + color: #146c43 !important; +} + +.link-info { + color: #0dcaf0 !important; +} +.link-info:hover, .link-info:focus { + color: #3dd5f3 !important; +} + +.link-warning { + color: #ffc107 !important; +} +.link-warning:hover, .link-warning:focus { + color: #ffcd39 !important; +} + +.link-danger { + color: #dc3545 !important; +} +.link-danger:hover, .link-danger:focus { + color: #b02a37 !important; +} + +.link-light { + color: #f8f9fa !important; +} +.link-light:hover, .link-light:focus { + color: #f9fafb !important; +} + +.link-dark { + color: #212529 !important; +} +.link-dark:hover, .link-dark:focus { + color: #1a1e21 !important; +} + +.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, .sb-nav-fixed #layoutSidenav #layoutSidenav_nav, .sb-nav-fixed .sb-topnav { + 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: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + 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) { + 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; +} + +.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: 1px; + min-height: 1em; + background-color: currentcolor; + opacity: 0.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; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.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; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: 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: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + 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-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-1 { + --bs-border-width: 1px; +} + +.border-2 { + --bs-border-width: 2px; +} + +.border-3 { + --bs-border-width: 3px; +} + +.border-4 { + --bs-border-width: 4px; +} + +.border-5 { + --bs-border-width: 5px; +} + +.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: 0.25rem !important; +} + +.m-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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: 0.25rem !important; +} + +.me-2 { + margin-right: 0.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: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.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: 0.25rem !important; +} + +.p-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.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: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.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: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.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: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.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: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + 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 + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.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-light { + font-weight: 300 !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-semibold { + font-weight: 600 !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; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.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: #6c757d !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !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; +} + +.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-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-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-2xl) !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-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: 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-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: 0.25rem !important; + } + .m-sm-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.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: 0.25rem !important; + } + .p-sm-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + 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; + } + .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-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: 0.25rem !important; + } + .m-md-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.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: 0.25rem !important; + } + .p-md-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + 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; + } + .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-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: 0.25rem !important; + } + .m-lg-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.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: 0.25rem !important; + } + .p-lg-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + 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; + } + .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-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: 0.25rem !important; + } + .m-xl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.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: 0.25rem !important; + } + .p-xl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + 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; + } + .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-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: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.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: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + 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-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; + } +} +html, +body { + height: 100%; +} + +#layoutAuthentication { + display: flex; + flex-direction: column; + min-height: 100vh; +} +#layoutAuthentication #layoutAuthentication_content { + min-width: 0; + flex-grow: 1; +} +#layoutAuthentication #layoutAuthentication_footer { + min-width: 0; +} + +#layoutSidenav { + display: flex; +} +#layoutSidenav #layoutSidenav_nav { + flex-basis: 225px; + flex-shrink: 0; + transition: transform 0.15s ease-in-out; + z-index: 1038; + transform: translateX(-225px); +} +#layoutSidenav #layoutSidenav_content { + position: relative; + display: flex; + flex-direction: column; + justify-content: space-between; + min-width: 0; + flex-grow: 1; + min-height: calc(100vh - 56px); + margin-left: -225px; +} + +.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav { + transform: translateX(0); +} +.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content:before { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #000; + z-index: 1037; + opacity: 0.5; + transition: opacity 0.3s ease-in-out; +} + +@media (min-width: 992px) { + #layoutSidenav #layoutSidenav_nav { + transform: translateX(0); + } + #layoutSidenav #layoutSidenav_content { + margin-left: 0; + transition: margin 0.15s ease-in-out; + } + .sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav { + transform: translateX(-225px); + } + .sb-sidenav-toggled #layoutSidenav #layoutSidenav_content { + margin-left: -225px; + } + .sb-sidenav-toggled #layoutSidenav #layoutSidenav_content:before { + display: none; + } +} +.sb-nav-fixed .sb-topnav { + z-index: 1039; +} +.sb-nav-fixed #layoutSidenav #layoutSidenav_nav { + width: 225px; + height: 100vh; + z-index: 1038; +} +.sb-nav-fixed #layoutSidenav #layoutSidenav_nav .sb-sidenav { + padding-top: 56px; +} +.sb-nav-fixed #layoutSidenav #layoutSidenav_nav .sb-sidenav .sb-sidenav-menu { + overflow-y: auto; +} +.sb-nav-fixed #layoutSidenav #layoutSidenav_content { + padding-left: 225px; + top: 56px; +} + +#layoutError { + display: flex; + flex-direction: column; + min-height: 100vh; +} +#layoutError #layoutError_content { + min-width: 0; + flex-grow: 1; +} +#layoutError #layoutError_footer { + min-width: 0; +} + +.img-error { + max-width: 20rem; +} + +.nav .nav-link .sb-nav-link-icon, +.sb-sidenav-menu .nav-link .sb-nav-link-icon { + margin-right: 0.5rem; +} + +.sb-topnav { + padding-left: 0; + height: 56px; + z-index: 1039; +} +.sb-topnav .navbar-brand { + width: 225px; + margin: 0; +} +.sb-topnav.navbar-dark #sidebarToggle { + color: rgba(255, 255, 255, 0.5); +} +.sb-topnav.navbar-light #sidebarToggle { + color: #212529; +} + +.sb-sidenav { + display: flex; + flex-direction: column; + height: 100%; + flex-wrap: nowrap; +} +.sb-sidenav .sb-sidenav-menu { + flex-grow: 1; +} +.sb-sidenav .sb-sidenav-menu .nav { + flex-direction: column; + flex-wrap: nowrap; +} +.sb-sidenav .sb-sidenav-menu .nav .sb-sidenav-menu-heading { + padding: 1.75rem 1rem 0.75rem; + font-size: 0.75rem; + font-weight: bold; + text-transform: uppercase; +} +.sb-sidenav .sb-sidenav-menu .nav .nav-link { + display: flex; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + position: relative; +} +.sb-sidenav .sb-sidenav-menu .nav .nav-link .sb-nav-link-icon { + font-size: 0.9rem; +} +.sb-sidenav .sb-sidenav-menu .nav .nav-link .sb-sidenav-collapse-arrow { + display: inline-block; + margin-left: auto; + transition: transform 0.15s ease; +} +.sb-sidenav .sb-sidenav-menu .nav .nav-link.collapsed .sb-sidenav-collapse-arrow { + transform: rotate(-90deg); +} +.sb-sidenav .sb-sidenav-menu .nav .sb-sidenav-menu-nested { + margin-left: 1.5rem; + flex-direction: column; +} +.sb-sidenav .sb-sidenav-footer { + padding: 0.75rem; + flex-shrink: 0; +} + +.sb-sidenav-dark { + background-color: #212529; + color: rgba(255, 255, 255, 0.5); +} +.sb-sidenav-dark .sb-sidenav-menu .sb-sidenav-menu-heading { + color: rgba(255, 255, 255, 0.25); +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link { + color: rgba(255, 255, 255, 0.5); +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link .sb-nav-link-icon { + color: rgba(255, 255, 255, 0.25); +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link .sb-sidenav-collapse-arrow { + color: rgba(255, 255, 255, 0.25); +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link:hover { + color: #fff; +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link.active { + color: #fff; +} +.sb-sidenav-dark .sb-sidenav-menu .nav-link.active .sb-nav-link-icon { + color: #fff; +} +.sb-sidenav-dark .sb-sidenav-footer { + background-color: #343a40; +} + +.sb-sidenav-light { + background-color: #f8f9fa; + color: #212529; +} +.sb-sidenav-light .sb-sidenav-menu .sb-sidenav-menu-heading { + color: #adb5bd; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link { + color: #212529; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link .sb-nav-link-icon { + color: #adb5bd; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link .sb-sidenav-collapse-arrow { + color: #adb5bd; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link:hover { + color: #0d6efd; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link.active { + color: #0d6efd; +} +.sb-sidenav-light .sb-sidenav-menu .nav-link.active .sb-nav-link-icon { + color: #0d6efd; +} +.sb-sidenav-light .sb-sidenav-footer { + background-color: #e9ecef; +} + +.datatable-wrapper .datatable-container { + font-size: 0.875rem; +} + +.datatable-wrapper.no-header .datatable-container { + border-top: none; +} + +.datatable-wrapper.no-footer .datatable-container { + border-bottom: none; +} + +.datatable-top { + padding: 0 0 1rem; +} + +.datatable-bottom { + padding: 0; +} + +.datatable-top > nav:first-child, +.datatable-top > div:first-child, +.datatable-bottom > nav:first-child, +.datatable-bottom > div:first-child { + float: left; +} + +.datatable-top > nav:last-child, +.datatable-top > div:last-child, +.datatable-bottom > nav:last-child, +.datatable-bottom > div:last-child { + float: right; +} + +.datatable-selector { + width: auto; + display: inline-block; + padding-left: 1.125rem; + padding-right: 2.125rem; + margin-right: 0.25rem; +} + +.datatable-info { + margin: 7px 0; +} + +/* PAGER */ +.datatable-pagination a:hover { + background-color: #e9ecef; +} + +.datatable-pagination .active a, +.datatable-pagination .active a:focus, +.datatable-pagination .active a:hover { + background-color: #0d6efd; +} + +.datatable-pagination .ellipsis a, +.datatable-pagination .disabled a, +.datatable-pagination .disabled a:focus, +.datatable-pagination .disabled a:hover { + cursor: not-allowed; +} + +.datatable-pagination .disabled a, +.datatable-pagination .disabled a:focus, +.datatable-pagination .disabled a:hover { + cursor: not-allowed; + opacity: 0.4; +} + +.datatable-pagination .pager a { + font-weight: bold; +} + +/* TABLE */ +.datatable-table { + border-collapse: collapse; +} + +.datatable-table > tbody > tr > td, +.datatable-table > tbody > tr > th, +.datatable-table > tfoot > tr > td, +.datatable-table > tfoot > tr > th, +.datatable-table > thead > tr > td, +.datatable-table > thead > tr > th { + vertical-align: top; + padding: 0.5rem 0.5rem; +} + +.datatable-table > thead > tr > th { + vertical-align: bottom; + text-align: left; + border-bottom: none; +} + +.datatable-table > tfoot > tr > th { + vertical-align: bottom; + text-align: left; +} + +.datatable-table th { + vertical-align: bottom; + text-align: left; +} + +.datatable-table th a { + text-decoration: none; + color: inherit; +} + +.datatable-sorter { + display: inline-block; + height: 100%; + position: relative; + width: 100%; + padding-right: 1rem; +} + +.datatable-sorter::before, +.datatable-sorter::after { + content: ""; + height: 0; + width: 0; + position: absolute; + right: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + opacity: 0.2; +} + +.datatable-sorter::before { + bottom: 4px; +} + +.datatable-sorter::after { + top: 0px; +} + +.asc .datatable-sorter::after, +.desc .datatable-sorter::before { + opacity: 0.6; +} + +.datatables-empty { + text-align: center; +} + +.datatable-top::after, +.datatable-bottom::after { + clear: both; + content: " "; + display: table; +} + +.datatable-pagination li.datatable-hidden { + visibility: visible; +} + +.btn-datatable { + height: 20px !important; + width: 20px !important; + font-size: 0.75rem; + border-radius: 0.375rem !important; +} \ No newline at end of file diff --git a/assests/img/Group-49.ico b/assests/img/Group-49.ico new file mode 100644 index 0000000000000000000000000000000000000000..55624b23d8eec037de712beaac39ee5fcccf325f GIT binary patch literal 169022 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 U&bO_{GJ)qPbu94EooDF(11kq$u>b%7 literal 0 HcmV?d00001 diff --git a/assests/img/Logo-Wordmark.svg b/assests/img/Logo-Wordmark.svg new file mode 100644 index 0000000..6a0c669 --- /dev/null +++ b/assests/img/Logo-Wordmark.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assests/img/default_avatar.jpg b/assests/img/default_avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10cfb2f0b772c7ff0a19ec07c61ffe299eec80d3 GIT binary patch literal 8273 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 CcXm(! literal 0 HcmV?d00001 diff --git a/assests/img/error403.jpg b/assests/img/error403.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ddb937624369d5d7dee4e121e3cb6fcb8b1aad03 GIT binary patch literal 43332 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 literal 0 HcmV?d00001 diff --git a/assests/img/error404.webp b/assests/img/error404.webp new file mode 100644 index 0000000000000000000000000000000000000000..1fb29eb5f7628c03ad1eef88023ada628247bbe4 GIT binary patch literal 30196 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 T00000000000000000000G|cx~ literal 0 HcmV?d00001 diff --git a/assests/img/logo.png b/assests/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0b4fecf7df985ebd4aeca8c330abd64d88b08d GIT binary patch literal 237123 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 { + + // Toggle the side navigation + const sidebarToggle = document.body.querySelector('#sidebarToggle'); + if (sidebarToggle) { + // Uncomment Below to persist sidebar toggle between refreshes + // if (localStorage.getItem('sb|sidebar-toggle') === 'true') { + // document.body.classList.toggle('sb-sidenav-toggled'); + // } + sidebarToggle.addEventListener('click', event => { + event.preventDefault(); + document.body.classList.toggle('sb-sidenav-toggled'); + localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled')); + }); + } + +}); diff --git a/assests/styles.css b/assests/styles.css new file mode 100644 index 0000000..f78a396 --- /dev/null +++ b/assests/styles.css @@ -0,0 +1,11 @@ +/* Style général appliqué à toute la page */ +body{ + /* Couleur de fond claire pour améliorer la lisibilité */ + background: #f7f8fb; +} + +/* Style de base des cartes Bootstrap */ +.card{ + /* Fond blanc pour mettre en valeur le contenu */ + background: #fff; +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..a478818 --- /dev/null +++ b/composer.json @@ -0,0 +1,22 @@ +{ + "name": "groupe3/projetphp", + "description": "le projet php de ces mort", + "require": { + "smarty/smarty": "^5.7", + "phpmailer/phpmailer": "^7.0", + "vlucas/phpdotenv": "^5.6" + }, + "autoload": { + "psr-4": { + "Controllers\\": "controllers/", + "Entities\\": "entities/", + "Models\\": "models/" + } + }, + "authors": [ + { + "name": "Le Meilleur groupe", + "email": "pasdemail@meilleurgroupe.ccicampus" + } + ] +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..e54fc18 --- /dev/null +++ b/composer.lock @@ -0,0 +1,650 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "d2f573a5d0618ae6d7627bef30d78eb9", + "packages": [ + { + "name": "graham-campbell/result-type", + "version": "v1.1.4", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b", + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.5" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.4" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2025-12-27T19:43:20+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v7.0.2", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "squizlabs/php_codesniffer": "^3.13.5", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "directorytree/imapengine": "For uploading sent messages via IMAP, see gmail example", + "ext-imap": "Needed to support advanced email address parsing according to RFC822", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2026-01-09T18:02:33+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.5", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be", + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.5" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2025-12-27T19:41:33+00:00" + }, + { + "name": "smarty/smarty", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/smarty-php/smarty.git", + "reference": "78d259d3b971c59a0cd719c270cc5cbb740c36a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/smarty-php/smarty/zipball/78d259d3b971c59a0cd719c270cc5cbb740c36a7", + "reference": "78d259d3b971c59a0cd719c270cc5cbb740c36a7", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "symfony/polyfill-mbstring": "^1.27" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^7.5", + "smarty/smarty-lexer": "^4.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Smarty\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Monte Ohrt", + "email": "monte@ohrt.com" + }, + { + "name": "Uwe Tews", + "email": "uwe.tews@googlemail.com" + }, + { + "name": "Rodney Rehm", + "email": "rodney.rehm@medialize.de" + }, + { + "name": "Simon Wisselink", + "homepage": "https://www.iwink.nl/" + } + ], + "description": "Smarty - the compiling PHP template engine", + "homepage": "https://smarty-php.github.io/smarty/", + "keywords": [ + "templating" + ], + "support": { + "forum": "https://github.com/smarty-php/smarty/discussions", + "issues": "https://github.com/smarty-php/smarty/issues", + "source": "https://github.com/smarty-php/smarty/tree/v5.8.0" + }, + "funding": [ + { + "url": "https://github.com/wisskid", + "type": "github" + } + ], + "time": "2026-02-15T14:27:15+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-01-02T08:10:11+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.3", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "955e7815d677a3eaa7075231212f2110983adecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", + "reference": "955e7815d677a3eaa7075231212f2110983adecc", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.4", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.5", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2025-12-27T19:49:13+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} diff --git a/controllers/.gitkeep b/controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/controllers/AdminCtrl.php b/controllers/AdminCtrl.php new file mode 100644 index 0000000..670082b --- /dev/null +++ b/controllers/AdminCtrl.php @@ -0,0 +1,105 @@ +error_403(); + } + + $objCategoryModel = new CategoryModel; + + if (!empty($_POST['new_category'])) { + $newCat = new Category(); + $newCat->setName($_POST['new_category']); + $objCategoryModel->insertCategory($newCat); + $_SESSION['success'] = "La catégorie a bien été ajoutée"; + header('Location: '.$_ENV['BASE_URL'].'/admin/admin'); + exit; + } + + if (!empty($_POST['id_to_edit']) && !empty($_POST['new_name'])) { + $editCat = new Category(); + $editCat->setId($_POST['id_to_edit']); + $editCat->setName($_POST['new_name']); + $objCategoryModel->editCategory($editCat); + $_SESSION['success'] = "La catégorie a bien été modifiée"; + header('Location: '.$_ENV['BASE_URL'].'/admin/admin'); + exit; + } + + $arrCategory = $objCategoryModel->findAllCategory(); + $arrCategoryToDisplay = array(); + + foreach($arrCategory as $arrDetCategory){ + $objCategory = new Category; + $objCategory->hydrate($arrDetCategory); + $arrCategoryToDisplay[] = $objCategory; + } + + $objUserModel = new UserModel; + + if (!empty($_POST['action'])) { + $intUserId = (int)$_POST['user_id']; + + if ($intUserId > 0) { + if ($_POST['action'] === 'update_status' && !empty($_POST['new_status'])) { + $objUser = new User(); + $objUser->setId($intUserId); + $objUser->setStatus((int)$_POST['new_status']); + if ($objUserModel->editStatus($objUser)) { + $_SESSION['success'] = "Le statut a bien été modifié !"; + } + } + elseif ($_POST['action'] === 'delete_user') { + $objUserModel->delete_soft($intUserId); + $_SESSION['success'] = "L'utilisateur a été supprimé."; + } + header('Location: '.$_ENV['BASE_URL'].'/admin/admin'); + exit; + } + } + + $arrUser = $objUserModel->findAllUsers(); + $arrUserToDisplay = array(); + + foreach($arrUser as $arrDetUser){ + $objUser = new User; + $objUser->hydrate($arrDetUser); + $arrUserToDisplay[] = $objUser; + } + + $objAuthorisationModel = new AuthorisationModel; + $arrAuthorisation = $objAuthorisationModel->findAllAuthorisation(); + $arrAuthorisationToDisplay = array(); + + foreach($arrAuthorisation as $arrDetAuthorisation){ + $objAuthorisation = new Authorisation; + $objAuthorisation->hydrate($arrDetAuthorisation); + $arrAuthorisationToDisplay[] = $objAuthorisation; + } + + $this->_arrData['arrCategoryToDisplay'] = $arrCategoryToDisplay; + $this->_arrData['arrUserToDisplay'] = $arrUserToDisplay; + $this->_arrData['arrAuthorisationToDisplay'] = $arrAuthorisationToDisplay; + $this->_display("admin"); + } + } diff --git a/controllers/ErrorCtrl.php b/controllers/ErrorCtrl.php new file mode 100644 index 0000000..9a5e0ff --- /dev/null +++ b/controllers/ErrorCtrl.php @@ -0,0 +1,28 @@ +_display("error_404"); + exit; + } + + /** + * Page erreur 403 + */ + public function error_403(){ + http_response_code(403); + $this->_display("error_403"); + exit; + } + + } \ No newline at end of file diff --git a/controllers/MotherCtrl.php b/controllers/MotherCtrl.php new file mode 100644 index 0000000..49ccbdf --- /dev/null +++ b/controllers/MotherCtrl.php @@ -0,0 +1,52 @@ +registerPlugin('modifier', 'vardump', 'var_dump'); + $objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists'); + $objSmarty->registerPlugin('modifier', 'stripos', 'stripos'); + $objSmarty->caching = false; + + $objSmarty->force_compile = true; + + $objSmarty->compile_check = true; + + foreach($this->_arrData as $key=>$value){ + $objSmarty->assign($key, $value); + } + + $objSmarty->assign("success_message", $_SESSION['success']??''); + unset($_SESSION['success']); + + if (isset($_SESSION['error'])){ + $objSmarty->assign("arrError", array($_SESSION['error'])); + unset($_SESSION['error']); + } + + if ($boolDisplay){ + $objSmarty->display("views/".$strView.".tpl"); + }else{ + return $objSmarty->fetch("views/".$strView.".tpl"); + } + } + + } \ No newline at end of file diff --git a/controllers/PageCtrl.php b/controllers/PageCtrl.php new file mode 100644 index 0000000..248435d --- /dev/null +++ b/controllers/PageCtrl.php @@ -0,0 +1,39 @@ +_display("help"); + + } + + /** + * Page mentions légales + */ + public function mentions(){ + // Afficher + $this->_display("mentions"); + } + + /** + * Page à propos + */ + public function about(){ + // Afficher + $this->_display("about"); + } + + } \ No newline at end of file diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php new file mode 100644 index 0000000..e636ead --- /dev/null +++ b/controllers/ProjectCtrl.php @@ -0,0 +1,554 @@ +getTokenUser($hash_a_verifier); + + if ($row) { + $user = $objUserModel->findUserById($row['token_user_id']); + + if ($user) { + $_SESSION['user'] = $user; + } + } + } + + + $intCategory = 0; + if (!empty($_GET['filter_cat'])) { + $intCategory = (int) $_GET['filter_cat']; + } + + $boolOld = false; + if (!empty($_GET['filter_old']) && $_GET['filter_old'] == 'true') { + $boolOld = true; + } + + $objProjectModel = new ProjectModel; + $arrProject = $objProjectModel->findAll(0,'',0,0,'','','',$intCategory,$boolOld); + $arrProjectToDisplay = array(); + foreach($arrProject as $arrDetProject){ + $objProject = new Project; + $objProject->hydrate($arrDetProject); + $arrProjectToDisplay[] = $objProject; + } + + $this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay; + $this->_display("home"); + + } + + /** + * Fonction d'affichage de la barre de recherche + */ + public function search(){ + + $strKeywords = $_POST['keywords']??""; + $intAuthor = $_POST['author']??0; + $intPeriod = $_POST['period']??0; + $strDate = $_POST['date']??''; + $strStartDate = $_POST['startdate']??''; + $strEndDate = $_POST['enddate']??''; + $intCategory = $_POST['category']??0; + + $objProjectModel = new ProjectModel; + $arrProject = $objProjectModel->findAll(intAuthor:$intAuthor, intPeriod:$intPeriod, strDate:$strDate, + strKeywords:$strKeywords, strStartDate:$strStartDate, strEndDate:$strEndDate, intCategory:$intCategory); + $arrProjectToDisplay = array(); + + foreach($arrProject as $arrDetProject){ + $objProject = new Project; + $objProject->hydrate($arrDetProject); + $arrProjectToDisplay[] = $objProject; + } + + $objUserModel = new UserModel; + $arrUser = $objUserModel->findAllUsers(); + + $objCategoryModel = new CategoryModel; + $arrCategory = $objCategoryModel->findAllCategory(); + + $this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay; + $this->_arrData['arrCategory'] = $arrCategory; + $this->_arrData['arrProject'] = $arrProject; + $this->_arrData['arrUser'] = $arrUser; + $this->_arrData['strKeywords'] = $strKeywords; + $this->_arrData['intAuthor'] = $intAuthor; + $this->_arrData['intPeriod'] = $intPeriod; + $this->_arrData['strDate'] = $strDate; + $this->_arrData['strStartDate'] = $strStartDate; + $this->_arrData['strEndDate'] = $strEndDate; + $this->_arrData['intCategory'] = $intCategory; + + $this->_display("search"); + } + + /** + * Fonction d'affichage de la page projet + */ + public function addedit_project() { + if (!isset($_SESSION['user'])){ + $error = new \Controllers\ErrorCtrl(); + return $error->error_403(); + } + + $objProject = new Project; + $objProjectModel = new ProjectModel; + $objCategoryModel = new CategoryModel; + + if (isset($_GET['id'])){ + $arrProject = $objProjectModel->findOne($_GET['id']); + if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){ + $error = new \Controllers\ErrorCtrl(); + return $error->error_403(); + } + $objProject->hydrate($arrProject); + $this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId()); + } + + $arrError = []; + if (count($_POST) > 0) { + + $objProject->hydrate($_POST); + if ($objProject->getTitle() == ""){ + $arrError['title'] = "Le titre est obligatoire"; + } + + if ($objProject->getDescription() == ""){ + $arrError['description'] = "La description est obligatoire"; + } + + if ($objProject->getContent() == ""){ + $arrError['content'] = "Le contenu est obligatoire"; + } + + $arrTypeAllowed = array('image/jpeg', 'image/png', 'image/webp'); + if ($_FILES['thumbnail']['error'] != 4){ + if (!in_array($_FILES['thumbnail']['type'], $arrTypeAllowed)){ + $arrError['thumbnail'] = "Le type de fichier n'est pas autorisé"; + }else{ + switch ($_FILES['thumbnail']['error']){ + case 0 : + $strImageName = uniqid().".webp"; + $strOldImg = $objProject->getThumbnail(); + $objProject->setThumbnail($strImageName); + break; + case 1 : + $arrError['thumbnail'] = "Le fichier est trop volumineux"; + break; + case 2 : + $arrError['thumbnail'] = "Le fichier est trop volumineux"; + break; + case 3 : + $arrError['thumbnail'] = "Le fichier a été partiellement téléchargé"; + break; + case 6 : + $arrError['thumbnail'] = "Le répertoire temporaire est manquant"; + break; + default : + $arrError['thumbnail'] = "Erreur sur l'image"; + break; + } + } + }else{ + if (is_null($objProject->getThumbnail())){ + $arrError['thumbnail'] = "L'image est obligatoire"; + } + } + + if (count($arrError) == 0){ + + $boolImageOk = true; + if (isset($strImageName)){ + $strDest = $_ENV['IMG_PROJECT_PATH'].$strImageName; + $strSource = $_FILES['thumbnail']['tmp_name']; + list($intWidth, $intHeight) = getimagesize($strSource); + + $intDestWidth = 1280; $intDestHeight = 720; + $fltDestRatio = $intDestWidth / $intDestHeight; + $fltSourceRatio = $intWidth / $intHeight; + + if ($fltSourceRatio > $fltDestRatio) { + $intCropHeight = $intHeight; + $intCropWidth = (int)round($intHeight * $fltDestRatio); + $intCropX = (int)(($intWidth - $intCropWidth) / 2); + $intCropY = 0; + } else { + $intCropWidth = $intWidth; + $intCropHeight = (int)round($intWidth / $fltDestRatio); + $intCropX = 0; + $intCropY = (int)(($intHeight - $intCropHeight) / 2); + } + + $objDest = imagecreatetruecolor($intDestWidth, $intDestHeight); + switch ($_FILES['thumbnail']['type']) { + case 'image/jpeg' : + $objSource = imagecreatefromjpeg($strSource); + break; + case 'image/png' : + $objSource = imagecreatefrompng($strSource); + break; + case 'image/webp' : + $objSource = imagecreatefromwebp($strSource); + break; + } + + imagecopyresampled($objDest, $objSource, 0, 0, $intCropX, $intCropY, $intDestWidth, $intDestHeight, $intCropWidth, $intCropHeight); + $boolImageOk = imagewebp($objDest, $strDest); + + imagedestroy($objDest); + imagedestroy($objSource); + } + + if ($boolImageOk){ + if (!isset($_GET['id'])){ + $objProject->setUser_id($_SESSION['user']['user_id']); + $boolOk = $objProjectModel->insert($objProject); + } else { + $boolOk = $objProjectModel->updateProject($objProject); + } + + if ($boolOk){ + if (isset($_FILES['imageProject']) && $_FILES['imageProject']['error'][0] != 4) { + $files = $_FILES['imageProject']; + $maxPhotos = 20; + + $currentImages = $objProjectModel->getImagesByProjectId($objProject->getId()); + $totalExisting = count($currentImages); + $remainingSlots = $maxPhotos - $totalExisting; + + if ($remainingSlots <= 0) { + $_SESSION['error'] = "Limite de $maxPhotos photos atteinte. Supprimez-en pour en ajouter de nouvelles."; + } else { + $uploadedCount = 0; + + foreach ($files['name'] as $key => $name) { + if ($uploadedCount >= $remainingSlots) break; + + if ($files['error'][$key] === 0 && in_array($files['type'][$key], $arrTypeAllowed)) { + + $galleryName = uniqid() . "_gallery.webp"; + $strDestGallery = $_ENV['IMG_PROJECT_PATH'].$galleryName; + $strSourceGallery = $files['tmp_name'][$key]; + + list($intW, $intH) = getimagesize($strSourceGallery); + + $intDestW = 150; $intDestH = 150; + $fltDestR = $intDestW / $intDestH; + $fltSourceR = $intW / $intH; + + if ($fltSourceR > $fltDestR) { + $intCropH = $intH; + $intCropW = (int)round($intH * $fltDestR); + $intCropX = (int)(($intW - $intCropW) / 2); + $intCropY = 0; + } else { + $intCropW = $intW; + $intCropH = (int)round($intW / $fltDestR); + $intCropX = 0; + $intCropY = (int)(($intH - $intCropH) / 2); + } + + $objDestGallery = imagecreatetruecolor($intDestW, $intDestH); + + switch ($files['type'][$key]) { + case 'image/jpeg' : + $objSourceGallery = imagecreatefromjpeg($strSourceGallery); + break; + case 'image/png' : + $objSourceGallery = imagecreatefrompng($strSourceGallery); + break; + case 'image/webp' : + $objSourceGallery = imagecreatefromwebp($strSourceGallery); + break; + } + + if ($objSourceGallery) { + imagecopyresampled($objDestGallery, $objSourceGallery, 0, 0, $intCropX, $intCropY, $intDestW, $intDestH, $intCropW, $intCropH); + + if (imagewebp($objDestGallery, $strDestGallery)) { + $objProjectModel->addImageInProject($galleryName, $objProject->getId()); + $uploadedCount++; + } + + imagedestroy($objDestGallery); + imagedestroy($objSourceGallery); + } + } + } + + if ($uploadedCount > 0) { + $_SESSION['success'] = "$uploadedCount image(s) ajoutée(s) à la galerie !"; + } + } + } + + if(isset($strOldImg) && !empty($strOldImg) && isset($strImageName)){ + $strOldFile = $_ENV['IMG_PROJECT_PATH'].$strOldImg; + if (file_exists($strOldFile)) unlink($strOldFile); + } + + $_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié"; + header('Location:'.$_ENV['BASE_URL']); + exit; + } else { + $arrError[] = "Erreur lors de l'enregistrement en base de données"; + } + } else { + $arrError['thumbnail'] = "Erreur dans le traitement de l'image"; + } + } + } + + $this->_arrData['arrCategory'] = $objCategoryModel->findAllCategory(); + $this->_arrData['objProject'] = $objProject; + $this->_arrData['arrError'] = $arrError; + + if ($objProject->getId()) { + $this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId()); + } else { + $this->_arrData['arrImages'] = []; + } + + $this->_display('addedit_project'); + } + + + /** + * Fonction d'affichage d'un projet + */ + public function display() { + $intId = $_GET['id'] ?? null; + + if ($intId) { + $objProjectModel = new ProjectModel(); + $arrProject = $objProjectModel->findOne((int)$intId); + + + if ($arrProject) { + $arrImages = $objProjectModel->getImagesByProjectId((int)$intId); + $objProject = new Project(); + $objProject->hydrate($arrProject); + + $this->_arrData["arrProject"] = $arrProject; + $this->_arrData["objProject"] = $objProject; + $this->_arrData["arrImages"] = $arrImages; + + $this->_display("project_display"); + + } else { + header('Location: '.$_ENV['BASE_URL'].'/project/home'); + exit; + } + } else { + header('Location: '.$_ENV['BASE_URL'].'/project/home'); + exit; + } + } + + /** + * Fonction d'envoi d'email + */ + public function sendEmail(){ + if (count($_POST) > 0) { + + $projectId = (int)($_POST['project_id'] ?? 0); + $toEmail = trim($_POST['to_email'] ?? ''); + + $objProjectModel = new ProjectModel(); + $arrProject = $objProjectModel->findOne($projectId); + + if (!$arrProject) { + header('Location: '.$_ENV['BASE_URL'].'/project/home'); + exit; + } + + $objProject = new Project(); + $objProject->hydrate($arrProject); + + $objMail = new PHPMailer(); + $objMail->IsSMTP(); + $objMail->Mailer = "smtp"; + $objMail->CharSet = PHPMailer::CHARSET_UTF8; + $objMail->SMTPDebug = 0; + + $objMail->SMTPAuth = true; + $objMail->SMTPSecure = $_ENV['SMTP_SECURE']; + $objMail->Port = $_ENV['SMTP_PORT']; + $objMail->Host = $_ENV['SMTP_HOST']; + $objMail->Username = $_ENV['SMTP_USERNAME']; + $objMail->Password = $_ENV['SMTP_PASSWORD']; + + $objMail->SMTPOptions = [ + 'ssl' => [ + 'verify_peer' => false, + ], + ]; + + + $objMail->IsHTML(true); + + $objMail->setFrom($_ENV['MAIL_FROM'], $_ENV['MAIL_FROM_NAME']); + $objMail->addAddress($toEmail); + + $objMail->Subject = "Projet : " . $objProject->getTitle(); + + $url = $_ENV['BASE_URL'].'/project/display/'.$projectId; + + $this->_arrData['projectTitle'] = $objProject->getTitle(); + $this->_arrData['projectDescription'] = $objProject->getDescription(); + $this->_arrData['projectUrl'] = $url; + + $objMail->Body = $this->_display("mail_message", false); + + if ($objMail->Send()) { + header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=ok'); + } else { + header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=fail'); + } + exit; + } + + header('Location: '.$_ENV['BASE_URL'].'/project/home'); + exit; + } + + /** + * Fonction de modération de projet = accepté + */ + public function accept(){ + + $intId = $_GET['id']; + + $objProjectModel = new ProjectModel; + $objProjectModel->accept($intId); + + header('Location: '.$_ENV['BASE_URL']); + exit; + } + + /** + * Fonction de modération de projet = refusé + */ + public function refuse(){ + + $intId = $_GET['id']; + + $objProjectModel = new ProjectModel; + $objProjectModel->refuse($intId); + + header('Location: '.$_ENV['BASE_URL']); + exit; + } + + /** + * Fonction de suppression de projet + */ + public function delete(){ + + $objProjectModel = new ProjectModel(); + $intId = $_GET['id'] ?? null; + $project = $objProjectModel->findOne($intId); + if ( + !isset($_SESSION['user']) || + !$project && + ($_SESSION['user']['user_status'] != 2 || $project['project_user_id'] != $_SESSION['user']['user_id']) + ) { + header('Location: '.$_ENV['BASE_URL']); + exit; + } + + + if ($intId) { + if ($objProjectModel->delete_soft_project((int) $intId)) { + $_SESSION['success'] = "Le projet a été archivé avec succès."; + } else { + $_SESSION['error'] = "Une erreur est survenue lors de l'archivage."; + } + } + + header('Location: '.$_ENV['BASE_URL']); + exit; + } + + /** + * Fonction de changement de statut (Approuvé, Refusé, En attente) + */ + public function change_image_status() { + if (isset($_GET['id_img']) && isset($_GET['status'])) { + $idImg = (int)$_GET['id_img']; + $status = $_GET['status']; + + $objProjectModel = new ProjectModel(); + + if ($objProjectModel->updateImageStatus($idImg, $status)) { + $_SESSION['success'] = "Le statut de l'image est désormais : " . ucfirst($status); + } + } + + $urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php"; + header('Location: ' . $urlRedirect); + exit; + } + + + /** + * Fonction de validation de l'image de projet + */ + public function delete_image() { + + $idImg = $_GET['id']; + $objProjectModel = new ProjectModel(); + + $image = $objProjectModel->findImage($idImg); + if ($image) { + $filePath = $_ENV['IMG_PROJECT_PATH'] . $image['image_name']; + if (file_exists($filePath)) unlink($filePath); + + $objProjectModel->deleteImage($idImg); + $_SESSION['success'] = "Image supprimée !"; + } + + $url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php"; + header('Location: ' . $url); + exit; + } + + + } diff --git a/controllers/UserCtrl.php b/controllers/UserCtrl.php new file mode 100644 index 0000000..1464775 --- /dev/null +++ b/controllers/UserCtrl.php @@ -0,0 +1,334 @@ + 0) { + if ($strMail == ""){ + $arrError['mail'] = "Le mail est obligatoire"; + } + if ($strPwd == ""){ + $arrError['pwd'] = "Le mot de passe est obligatoire"; + } + + if (count($arrError) == 0){ + $objUserModel = new UserModel; + $arrResult = $objUserModel->verifUser($strMail, $strPwd); + if ($arrResult === false){ + $arrError[] = "Mail ou mot de passe invalide"; + }else{ + $_SESSION['user'] = $arrResult; + $_SESSION['success'] = "Bienvenue, vous êtes bien connecté"; + if (isset($_POST['remember_me'])) { + + $token = bin2hex(random_bytes(32)); + $token_hash = hash('sha256', $token); + $objUserModel->remember($_SESSION['user']['user_id'],$token_hash); + + setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true); + + } + header("Location:".$_ENV['BASE_URL']); + exit; + } + } + } + $this->_arrData['arrError'] = $arrError; + $this->_display("login"); + + } + + /** + * Fonction pour ce déconnecter + */ + public function logout(){ + + if (isset($_COOKIE['remember_me'])) { + $hash = hash('sha256', $_COOKIE['remember_me']); + + $objUserModel = new UserModel; + $objUserModel->deleteToken($hash); + + setcookie('remember_me', '', time() - 3600, "/"); + } + unset($_SESSION['user']); + + $_SESSION['success'] = "Vous êtes bien déconnecté"; + + header("Location:".$_ENV['BASE_URL']); + exit; + + } + /** + * Fonction d'inscription d'un utilisateur + * Effectue les validations du formulaire, + * vérifie l'unicité du mail et du pseudo, puis insère l'utilisateur en base de données + * @return void + */ + public function signup(){ + + $objUser = new User(); + $strPwdConfirm = $_POST['pwd_confirm'] ?? ""; + + $objUser->hydrate($_POST); + + $arrError = []; + + if (!empty($_POST)) { + + $arrError = array_merge($this->_verifInfos($objUser), + $this->_verifPwd($objUser, $strPwdConfirm)); + + if (count($arrError) === 0) { + $objUserModel = new UserModel(); + if ($objUserModel->mailExists($objUser->getMail())) { + $arrError['user_mail'] = "Impossible de créer le compte avec ces informations"; + } + if ($objUserModel->pseudoExists($objUser->getPseudo())) { + $arrError['user_pseudo'] = "Ce pseudo existe déjà"; + } + if (count($arrError) === 0) { + $boolInsert = $objUserModel->insert($objUser); + + if ($boolInsert === true) { + $_SESSION['success'] = "Compte créé avec succès"; + header("Location:".$_ENV['BASE_URL']."/user/login"); + exit; + } else { + $arrError['global'] = "Erreur lors de l'ajout"; + } + } + } + } + + $this->_arrData['objUser'] = $objUser; + $this->_arrData['arrError'] = $arrError; + $this->_display("signup"); + } + + + protected function _verifInfos(User $objUser): array { + + $arrError = []; + + if (trim($objUser->getName()) === "") { + $arrError['user_name'] = "Le nom est obligatoire"; + } + + if (trim($objUser->getFirstname()) === "") { + $arrError['user_firstname'] = "Le prénom est obligatoire"; + } + + if (trim($objUser->getMail()) === "") { + $arrError['user_mail'] = "L'adresse e-mail est obligatoire"; + } elseif (!filter_var($objUser->getMail(), FILTER_VALIDATE_EMAIL)) { + $arrError['user_mail'] = "Le format de l'adresse e-mail est invalide"; + } + + if (trim($objUser->getPseudo()) === "") { + $arrError['user_pseudo'] = "Le pseudo est obligatoire"; + } + + return $arrError; + } + + + /** + * Vérification du mot de passe + */ + protected function _verifPwd(User $objUser, string $strPwdConfirm): array { + + $arrError = []; + + $strRegex = "/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{15,}$/"; + + if ($objUser->getPwd() == ""){ + $arrError['user_password'] = "Le mot de passe est obligatoire"; + } + else if (!preg_match($strRegex, $objUser->getPwd())){ + $arrError['user_password'] = "Le mot de passe ne respecte pas les critères"; + } + else if ($objUser->getPwd() != $strPwdConfirm){ + $arrError['pwd_confirm'] = "La confirmation du mot de passe ne correspond pas"; + } + + return $arrError; + } + + + /** + * le controlleur affichage de la page user + */ + public function user(){ + + $strPseudo = $_GET['pseudo']??''; + + $objUserModel = new UserModel; + $arrUserData = $objUserModel->findUserByPseudo($strPseudo); + + if ($arrUserData === false) { + header("Location: ".$_ENV['BASE_URL']); + exit; + } + + $objUser = new User; + $objUser->hydrate($arrUserData); + $objProjectModel = new ProjectModel; + $arrProjects = $objProjectModel->findAll(0,'',$objUser->getId()); + + $arrProjectToDisplay = array(); + foreach($arrProjects as $projectData) { + $objProject = new Project(); + $objProject->hydrate($projectData); + $arrProjectToDisplay[] = $objProject; + } + + $this->_arrData['user'] = $objUser; + $this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay; + $this->_display("user"); + } + + /** + * le controlleur de la modification d'un user + */ + public function edit(){ + if(!isset($_SESSION['user'])){ + header("Location: ".$_ENV['BASE_URL']); + exit; + } + $objUserModel = new UserModel; + $arrError = []; + $objUser = new User; + $arrUserData = $objUserModel->findUserById($_SESSION['user']['user_id']); + $objUser->hydrate($arrUserData); + if (!empty($_POST)) { + if ($objUserModel->mailExists($_POST['user_mail']) && ($_POST['user_mail'] != $objUser->getMail())) { + + $arrError['user_mail'] = "Ce mail est déjà associé"; + } else { + if ($objUserModel->pseudoExists($_POST['user_pseudo']) && ($_POST['user_pseudo'] != $objUser->getPseudo())){ + $arrError['user_pseudo'] = "Ce pseudo est déjà utiliser"; + }else{ + $objUser->hydrate($_POST); + $objUser->setId($_SESSION['user']['user_id']); + + $arrTypeAllowed = array('image/jpeg', 'image/png', 'image/webp'); + $boolImageOk = true; + + if ($_FILES['image']['error'] != 4) { + if (!in_array($_FILES['image']['type'], $arrTypeAllowed)) { + $arrError['image'] = "Le type de fichier n'est pas autorisé"; + } else { + switch ($_FILES['image']['error']) { + case 0: + $strImageName = uniqid() . ".webp"; + $strOldImg = $objUser->getImage(); + $objUser->setImage($strImageName); + break; + case 1: + case 2: + $arrError['image'] = "Le fichier est trop volumineux"; + break; + case 3: + $arrError['image'] = "Le fichier a été partiellement téléchargé"; + break; + case 6: + $arrError['image'] = "Le répertoire temporaire est manquant"; + break; + default: + $arrError['image'] = "Erreur sur l'image"; + break; + } + } + } + + + if (count($arrError) == 0 && isset($strImageName)) { + $strDest = $_ENV['IMG_USER_PATH'] . $strImageName; + $strSource = $_FILES['image']['tmp_name']; + list($intWidth, $intHeight) = getimagesize($strSource); + + $intDestWidth = 200; $intDestHeight = 200; + $fltDestRatio = $intDestWidth / $intDestHeight; + $fltSourceRatio = $intWidth / $intHeight; + + if ($fltSourceRatio > $fltDestRatio) { + $intCropHeight = $intHeight; + $intCropWidth = (int)round($intHeight * $fltDestRatio); + $intCropX = (int)(($intWidth - $intCropWidth) / 2); + $intCropY = 0; + } else { + $intCropWidth = $intWidth; + $intCropHeight = (int)round($intWidth / $fltDestRatio); + $intCropX = 0; + $intCropY = (int)(($intHeight - $intCropHeight) / 2); + } + + $objDest = imagecreatetruecolor($intDestWidth, $intDestHeight); + switch ($_FILES['image']['type']) { + case 'image/jpeg': $objSource = imagecreatefromjpeg($strSource); break; + case 'image/png': $objSource = imagecreatefrompng($strSource); break; + case 'image/webp': $objSource = imagecreatefromwebp($strSource); break; + } + + imagecopyresampled($objDest, $objSource, 0, 0, $intCropX, $intCropY, $intDestWidth, $intDestHeight, $intCropWidth, $intCropHeight); + $boolImageOk = imagewebp($objDest, $strDest); + imagedestroy($objDest); + imagedestroy($objSource); + } + + + if ($_POST['delete_image'] === '1') { + $strOldImg = $objUser->getImage(); + if (!empty($strOldImg) && $strOldImg !== 'images.jpg') { + $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg; + if (file_exists($strOldFile)) unlink($strOldFile); + } + $objUser->setImage('images.jpg'); + } + $boolInsert = $objUserModel->update($objUser); + + if ($boolInsert === true) { + if (isset($strOldImg) && !empty($strOldImg) && $strOldImg !== 'images.jpg' && isset($strImageName)) { + $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg; + if (file_exists($strOldFile)) unlink($strOldFile); + } + $arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo()); + $_SESSION['user'] = $arrNewInfo; + $_SESSION['success'] = "Compte modifier avec succès"; + header('Location:'.$_ENV['BASE_URL'].'/user/user/'.$objUser->getPseudo()); + exit; + } else { + $arrError['global'] = "Erreur lors de l'update"; + } + } + } + } + + $this->_arrData["arrError"] = $arrError; + $this->_arrData['objUser'] = $objUser; + $this->_display("useredit"); + + } + +} diff --git a/controllers/templates_c/299f75d7692a19207f23bf5795a2721f507c3fc6_0.file_home.tpl.php b/controllers/templates_c/299f75d7692a19207f23bf5795a2721f507c3fc6_0.file_home.tpl.php new file mode 100644 index 0000000..208dcfd --- /dev/null +++ b/controllers/templates_c/299f75d7692a19207f23bf5795a2721f507c3fc6_0.file_home.tpl.php @@ -0,0 +1,69 @@ +getCompiled()->isFresh($_smarty_tpl, array ( + 'version' => '5.7.0', + 'unifunc' => 'content_6985a47abcda40_19846426', + 'has_nocache_code' => false, + 'file_dependency' => + array ( + '299f75d7692a19207f23bf5795a2721f507c3fc6' => + array ( + 0 => 'views/home.tpl', + 1 => 1770365364, + 2 => 'file', + ), + ), + 'includes' => + array ( + 'file:views/_partial/preview.tpl' => 1, + ), +))) { +function content_6985a47abcda40_19846426 (\Smarty\Template $_smarty_tpl) { +$_smarty_current_dir = 'C:\\wamp64\\www\\projetphp\\views'; +$_smarty_tpl->getInheritance()->init($_smarty_tpl, false); +?> + +getInheritance()->instanceBlock($_smarty_tpl, 'Block_3150142016985a47abb6c29_00747518', "content"); +?> + + + +
+

Folliow

+

Là où les talents rencontrent leur avenir

+

Une plateforme de portfolio adapté à vos besoins et aux besoins des entreprises. + Créer un portfolio réellement pertinent aux exigences du marché et rentrez + directement en contact avec les entreprises.

+
+ +
+

Les 4 derniers articles

+
+ + getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrProjectToDisplay'), 'objProject'); +$foreach0DoElse = true; +foreach ($_from ?? [] as $_smarty_tpl->getVariable('objProject')->value) { +$foreach0DoElse = false; +?> + renderSubTemplate("file:views/_partial/preview.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir); +?> + getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?> +
+getCompiled()->isFresh($_smarty_tpl, array ( + 'version' => '5.7.0', + 'unifunc' => 'content_6985a47ad585d5_25749521', + 'has_nocache_code' => false, + 'file_dependency' => + array ( + 'c724044e55872f26030b02de6dcd14dc34a20b16' => + array ( + 0 => 'views/_partial/preview.tpl', + 1 => 1770365554, + 2 => 'file', + ), + ), + 'includes' => + array ( + ), +))) { +function content_6985a47ad585d5_25749521 (\Smarty\Template $_smarty_tpl) { +$_smarty_current_dir = 'C:\\wamp64\\www\\projetphp\\views\\_partial'; +?>
_prefix = 'authorisation_'; + } + + /** + * Récuperation de l'id du statut d'un utilisateur + * @return int l'id du statut + */ + public function getId():int{ + return $this->_id; + } + + /** + * Mise à jour de l'id du statut d'un utilisateur + * @param int le nouvelle id du statut + */ + public function setId(int $id){ + $this->_id = $id; + } + + /** + * Récuperation de l'intitulé du statut d'un utilisateur + * @return string l'intitulé du statut + */ + public function getName():string{ + return $this->_name; + } + + /** + * Mise à jour de l'intitulé du statut d'un utilisateur + * @return string le nouvel intitulé du statut + */ + public function setName(string $name){ + $this->_name = $name; + } + + } \ No newline at end of file diff --git a/entities/Category.php b/entities/Category.php new file mode 100644 index 0000000..9b9b749 --- /dev/null +++ b/entities/Category.php @@ -0,0 +1,81 @@ +_prefix = 'category_'; + } + + // Méthode Getter et Setter + + /** + * Récuperation de l'id de la catégorie + * @return int l'id de la catégorie + */ + public function getId(): ?int{ + return $this->_id; + } + + /** + * Mise à jour de l'id de la catégorie + * @param int le nouvelle id + */ + public function setId($id){ + if (empty($id)) { + $this->_id = null; + } else { + $this->_id = (int) $id; + } + } + + /** + * Récuperation du nom de la catégorie + * @return string nom de la catégorie + */ + public function getName(){ + return $this->_name; + } + + /** + * Mise à jour du nom de la catégorie + * @param string le nouveau nom de la catégorie + */ + public function setName($name){ + $this->_name = $name; + } + + /** + * Récuperation du nom du parent de la catégorie + * @return int nom de la catégorie + */ + public function getParent():?int{ + return $this->_parent; + } + + /** + * Mise à jour du nom du parent de la catégorie + * @param int le nouveau nom de la catégorie + */ + public function setParent($parent){ + if (empty($parent)) { + $this->_parent = null; + } else { + $this->_parent = (int) $parent; + } + } + +} \ No newline at end of file diff --git a/entities/Image.php b/entities/Image.php new file mode 100644 index 0000000..11dfad5 --- /dev/null +++ b/entities/Image.php @@ -0,0 +1,92 @@ +_prefix = 'image_'; + } + + // Méthode Getter et Setter + + /** + * Récuperation de l'id de l'image + * @return int l'id de l'image + */ + public function getId():int{ + return $this->_id; + } + + /** + * Mise à jour de l'id de l'image + * @param int le nouvelle id + */ + public function setId($id){ + $this->_id = $id; + } + + /** + * Récuperation du nom de l'image + * @return string nom de l'image + */ + public function getName(){ + return $this->_name; + } + + /** + * Mise à jour du nom de l'image + * @param string le nouveau nom de l'image + */ + public function setName($name){ + $this->_name = $name; + } + + /** + * Récuperation de l'alt + * @return string contenu de l'alt + */ + public function getAlt(){ + return $this->_alt; + } + + /** + * Mise à jour de l'alt + * @param string le nouveau contenu de l'alt + */ + public function setAlt($alt){ + $this->_alt = $alt; + } + + /** + * Récuperation du statut de la photo + * @return string du statut + */ + public function getStatus(){ + return $this->_status; + } + + /** + * Mise à jour du statut de la photo + * @param string le nouveau statut de la photo + */ + public function setStatus($status){ + $this->_status = $status; + } + + } \ No newline at end of file diff --git a/entities/Mother.php b/entities/Mother.php new file mode 100644 index 0000000..c05ced3 --- /dev/null +++ b/entities/Mother.php @@ -0,0 +1,31 @@ +$value){ + $strMethodName = "set".ucfirst(str_replace($this->_prefix,'',$key)); + if (method_exists($this,$strMethodName)){ + $this->$strMethodName($value); + } + } + } + + protected function nettoyer(string $strText){ + $strText = trim($strText); + $strText = str_replace("", "", $strText); + return $strText; + } + + } \ No newline at end of file diff --git a/entities/Project.php b/entities/Project.php new file mode 100644 index 0000000..ca5c941 --- /dev/null +++ b/entities/Project.php @@ -0,0 +1,240 @@ +_prefix = 'project_'; + } + + // Méthode Getter et Setter + + /** + * Récuperation de l'id du projet + * @return int l'id du projet + */ + public function getId():?int{ + return $this->_id; + } + + /** + * Mise à jour de l'id du projet + * @param int le nouvelle id + */ + public function setId(int $id){ + $this->_id = $id; + return $this; + } + + /** + * Récuperation du titre + * @return string tite du projet + */ + public function getTitle(){ + return $this->nettoyer($this->_title); + } + + /** + * Mise à jour du titre + * @param string le nouveau titre + */ + public function setTitle($title){ + $this->_title = $title; + } + + /** + * Récuperation de la description + * @return string description du projet + */ + public function getDescription(){ + return $this->nettoyer($this->_description) ; + } + + /** + * Mise à jour de la description + * @param string la nouvelle description + */ + public function setDescription($description){ + $this->_description = $description; + } + + + /** + * Récuperation de l'image + * @return string chemin vers l'image + */ + public function getThumbnail(){ + return $this->_thumbnail; + } + + /** + * Mise à jour de l'image + * @param string chemin vers nouvelle image + */ + public function setThumbnail($thumbnail){ + $this->_thumbnail = $thumbnail; + } + + /** + * Récuperation du contenu + * @return string contenu du projet + */ + public function getContent(){ + return $this->nettoyer($this->_content); + } + + /** + * Mise à jour du contenu + * @param string le nouveau contenu + */ + public function setContent($content){ + $this->_content = $content; + } + + /** + * Récupération de la date de création + * @param string lang de formatage de la date (par défaut = "fr_FR") + * @return string date de création formatter + */ + public function getCreation_date(string $strFormat = "fr_FR"){ + $objDate = new DateTime($this->_creation_date); + + $objDateFormatter = new IntlDateFormatter( + $strFormat, + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + + ); + $strFormat = $objDateFormatter->format($objDate); + return $strFormat; + } + + /** + * Mise à jour de la date de création + * @param string la nouvelle date de création + */ + public function setCreation_date($creation_date){ + $this->_creation_date = $creation_date; + } + + /** + * Récupération du statut + * @return string statut + */ + public function getStatus(){ + return $this->_status; + } + + /** + * Mise à jour du statut + * @param string le nouveau statut + */ + public function setStatus($status){ + $this->_status = $status; + } + + /** + * Récupération de l'utilisateur + * @return int id de l'utilisateur + */ + public function getUser_id(){ + return $this->_user; + } + + /** + * Mise à jour de l'utilisateur + * @param int id de l'utilisateur + */ + public function setUser_id($user){ + $this->_user = $user; + } + + /** + * Récupération de la catégorie + * @return int id de la catégorie + */ + public function getCategory():?int{ + return $this->_category; + } + + /** + * Mise à jour de la catégorie + * @param int id de la catégorie + */ + public function setCategory($category){ + $this->_category = $category; + } + + /** + * Récupération du nom du créateur + * @return string nom du créateur + */ + public function getCreatorName(){ + return $this->_creatorname; + } + + /** + * Mise à jour du nom du créateur + * @param string le nom du créateur + */ + public function setCreatorName($creatorname){ + $this->_creatorname = $creatorname; + } + + /** + * Récupération du chemin photo profil + * @return string nom du chemin photo profil + */ + public function getUser_image(){ + return $this->_user_image; + } + + /** + * Mise à jour du chemin photo profil + * @param string chemin photo profil + */ + public function setUser_image($user_image){ + $this->_user_image = $user_image; + } + + /** + * Récupération de la date du projet supprimer + * @return string date du projet + */ + public function getDeleted_at(){ + return $this->_project_deleted_at; + } + + /** + * Mise à jour de la date de suppression de projet + * @param string date du projet + */ + public function setDeleted_at($project_deleted_at){ + $this->_project_deleted_at = $project_deleted_at; + } +} \ No newline at end of file diff --git a/entities/User.php b/entities/User.php new file mode 100644 index 0000000..f156205 --- /dev/null +++ b/entities/User.php @@ -0,0 +1,263 @@ +_prefix = 'user_'; + } + + /** + * Récuperation de l'id d'un utilisateur + * @return int l'id de l'utilisateur + */ + public function getId():int{ + return $this->_id; + } + + /** + * Mise à jour de l'id d'un utilisateur + * @param int le nouvelle id de l'utilisateur + */ + public function setId(int $id){ + $this->_id = $id; + } + + /** + * Récuperation du nom d'un utilisateur + * @return string le nom de l'utilisateur + */ + public function getName():string{ + return $this->nettoyer($this->_name); + } + + /** + * Mise à jour du nom d'un utilisateur + * @return string le nouveau nom de l'utilisateur + */ + public function setName(string $name){ + $this->_name = $name; + } + + /** + * Récuperation du prénom d'un utilisateur + * @return string le prénom de l'utilisateur + */ + public function getFirstname():string{ + return $this->nettoyer($this->_firstname); + } + + /** + * Mise à jour du prénom d'un utilisateur + * @return string le nouveau prénom de l'utilisateur + */ + public function setFirstname(string $firstname){ + $this->_firstname = $firstname; + } + + /** + * Récuperation du pseudo unique d'un utilisateur + * @return string le pseudo de l'utilisateur + */ + public function getPseudo():string{ + return $this->nettoyer($this->_pseudo); + } + + /** + * Mise à jour du pseudo unique d'un utilisateur + * @return string le nouveau pseudo de l'utilisateur + */ + public function setPseudo(string $pseudo){ + $this->_pseudo = str_replace(" ","_",$pseudo); + } + + /** + * Récuperation du nom de l'image d'un utilisateur + * @return string du nom de l'image de l'utilisateur + */ + public function getImage():?string{ + return $this->_image; + } + + /** + * Mise à jour du nom de l'image d'un utilisateur + * @return string le nouveau nom de l'image de l'utilisateur + */ + public function setImage(?string $image){ + $this->_image = $image; + } + + /** + * Récuperation de l'email d'un utilisateur + * @return string l'email de l'utilisateur + */ + public function getMail():string{ + return $this->_mail; + } + + /** + * Mise à jour de l'email d'un utilisateur + * @return string le nouvel email de l'utilisateur + */ + public function setMail(string $mail){ + $this->_mail = strtolower($mail); + } + + /** + * Récuperation du mot de passe d'un utilisateur + * @return string le mot de passe de l'utilisateur + */ + public function getPwd():string{ + return $this->_pwd; + } + + /** + * Récuperation du mot de passe haché d'un utilisateur + * @return string le mot de passe haché de l'utilisateur + */ + public function getPwdHash():string{ + return password_hash($this->_pwd, PASSWORD_DEFAULT); + } + + /** + * Mise à jour du mot de passe d'un utilisateur + * @return string le nouveau mot de passe de l'utilisateur + */ + public function setPwd(string $pwd){ + $this->_pwd = $pwd; + } + + /** + * Récuperation du numéro de téléphone d'un utilisateur + * @return string le numéro de téléphone de l'utilisateur + */ + public function getPhone():string{ + return $this->nettoyer($this->_phone); + } + + /** + * Mise à jour du numéro de téléphone d'un utilisateur + * @return string le nouveau numéro de téléphone de l'utilisateur + */ + public function setPhone(string $phone){ + $this->_phone = $phone; + } + + /** + * Récuperation de la profession d'un utilisateur + * @return string la profession de l'utilisateur + */ + public function getWork():string{ + return $this->nettoyer($this->_work); + } + + /** + * Mise à jour de la profession d'un utilisateur + * @return string la nouvelle profession de l'utilisateur + */ + public function setWork(string $work){ + $this->_work = $work; + } + + /** + * Récuperation de la date de naissance d'un utilisateur + * @return string la date de naissance de l'utilisateur + */ + public function getBirth():?string{ + return $this->_birth; + } + + /** + * Mise à jour de la date de naissance d'un utilisateur + * @return string la nouvelle date de naissance de l'utilisateur + */ + public function setBirth(?string $birth){ + $this->_birth = $birth; + } + + /** + * Récuperation de la localisation d'un utilisateur + * @return string la localisation de l'utilisateur + */ + public function getLocation():string{ + return $this->nettoyer($this->_location); + } + + /** + * Mise à jour de la localisation d'un utilisateur + * @return string la nouvelle localisation de l'utilisateur + */ + public function setLocation(string $location){ + $this->_location = $location; + } + + /** + * Récuperation de la description d'un utilisateur + * @return string la description de l'utilisateur + */ + public function getDescription():string{ + return $this->nettoyer($this->_description); + } + + /** + * Mise à jour de la description d'un utilisateur + * @return string la nouvelle description de l'utilisateur + */ + public function setDescription(string $description){ + $this->_description = $description; + } + + /** + * Récuperation de la date de création d'un utilisateur + * @return string la date de création de l'utilisateur + */ + public function getAccountCreation():string{ + return $this->_account_creation; + } + + /** + * Mise à jour de la date de création d'un utilisateur + * @return string la nouvelle date de création de l'utilisateur + */ + public function setAccountCreation(string $account_creation){ + $this->_account_creation = $account_creation; + } + + /** + * Récuperation de l'id du statut d'un utilisateur + * @return int l'id du statut de l'utilisateur + */ + public function getStatus():int{ + return $this->_status; + } + + /** + * Mise à jour de l'id du statut d'un utilisateur + * @return int le nouvel id du statut de l'utilisateur + */ + public function setStatus(int $status){ + $this->_status = $status; + } + } diff --git a/index.php b/index.php new file mode 100644 index 0000000..72358a6 --- /dev/null +++ b/index.php @@ -0,0 +1,32 @@ +safeLoad(); + + $strCtrl = preg_replace('/[^a-zA-Z]/', '', $_GET['ctrl'] ?? 'project'); + $strMethod = preg_replace('/[^a-zA-Z_]/', '', $_GET['action'] ?? 'home'); + + $strClassName = "Controllers\\" . ucfirst($strCtrl) . "Ctrl"; + + $boolError = false; + + if (class_exists($strClassName)) { + $objController = new $strClassName(); + + if (method_exists($objController, $strMethod)) { + $objController->$strMethod(); + } else { + $boolError = true; + } + } else { + $boolError = true; + } + + if ($boolError) { + http_response_code(404); // ← important pour le SEO et les navigateurs + $error = new \Controllers\ErrorCtrl(); + $error->error_404(); // ← pas de "return", juste l'appel + exit; // ← stoppe l'exécution après l'affichage + } \ No newline at end of file diff --git a/models/.gitkeep b/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/models/AuthorisationModel.php b/models/AuthorisationModel.php new file mode 100644 index 0000000..f98030b --- /dev/null +++ b/models/AuthorisationModel.php @@ -0,0 +1,30 @@ +_db->query($strRq)->fetchAll(); + } + + } \ No newline at end of file diff --git a/models/CategoryModel.php b/models/CategoryModel.php new file mode 100644 index 0000000..3ce1dc4 --- /dev/null +++ b/models/CategoryModel.php @@ -0,0 +1,93 @@ + 0){ + $strRq .= " LIMIT :limit"; + } + + $rqPrep = $this->_db->prepare($strRq); + + if ($intLimit > 0){ + $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + + return $rqPrep->fetchAll(); + } + + /** + * fonction d'insertion d'une nouvelle catégorie dans la bdd + * @param object $objCategory l'objet catégorie + * @return bool Est-ce que la requête s'est bien passée + */ + public function insertCategory(object $objCategory):bool{ + + $strRq = "INSERT INTO category (category_name) + VALUES (:name)"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":name", $objCategory->getName(), PDO::PARAM_STR); + + return $rqPrep->execute(); + + } + + /** + * fonction de suppression d'une catégorie dans la bdd + * @param object $objCategory l'objet catégorie + * @return bool Est-ce que la requête s'est bien passée + */ + public function deleteCategory(object $objCategory):bool{ + + $strRq = "DELETE FROM category + WHERE category_id= :id"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":id", $objCategory->getId(), PDO::PARAM_INT); + + return $rqPrep->execute(); + } + + /** + * fonction de modification d'une catégorie dans la bdd + * @param object $objCategory l'objet catégorie + * @return bool Est-ce que la requête s'est bien passée + */ + public function editCategory(object $objCategory):bool{ + + $strRq = "UPDATE category + SET category_name = :name + WHERE category_id = :id"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":id", $objCategory->getId(), PDO::PARAM_INT); + $rqPrep->bindValue(":name", $objCategory->getName(), PDO::PARAM_STR); + + return $rqPrep->execute(); + } + } + \ No newline at end of file diff --git a/models/ImageModel.php b/models/ImageModel.php new file mode 100644 index 0000000..c3cc95d --- /dev/null +++ b/models/ImageModel.php @@ -0,0 +1,39 @@ + 0){ + $strRq .= " LIMIT :limit"; + } + + $rqPrep = $this->_db->prepare($strRq); + + if ($intLimit > 0){ + $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + + return $rqPrep->fetchAll(); + } + } \ No newline at end of file diff --git a/models/MotherModel.php b/models/MotherModel.php new file mode 100644 index 0000000..079d791 --- /dev/null +++ b/models/MotherModel.php @@ -0,0 +1,24 @@ +_db = new PDO( + "mysql:host=".$_ENV['DB_HOSTNAME'].";dbname=".$_ENV['DB_DATABASE'], + $_ENV['DB_USERNAME'], + $_ENV['DB_PASSWORD'], + array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) + ); + $this->_db->exec("SET CHARACTER SET utf8"); + $this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + } catch(PDOException$e) { + echo "Échec : " . $e->getMessage(); + } + } + } \ No newline at end of file diff --git a/models/ProjectModel.php b/models/ProjectModel.php new file mode 100644 index 0000000..40e1087 --- /dev/null +++ b/models/ProjectModel.php @@ -0,0 +1,320 @@ + 0){ + $strRq .= " AND project_user_id = :author"; + } + + if ($intCategory > 0){ + $strRq .= " AND project_category = :category"; + } + + if ($boolOlderThan6Months === true) { + $strRq .= " AND project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH)"; + } + + if ($intPeriod == 0){ + if ($strDate != ''){ + $strRq .= " AND project_creation_date = :date_exacte"; + } + } else { + if ($strStartDate != '' && $strEndDate != ''){ + $strRq .= " AND project_creation_date BETWEEN :date_debut AND :date_fin"; + } else { + if ($strStartDate != ''){ + $strRq .= " AND project_creation_date >= :date_debut"; + } else if ($strEndDate != ''){ + $strRq .= " AND project_creation_date <= :date_fin"; + } + } + } + + $strRq .= " ORDER BY project_creation_date DESC"; + + if ($intLimit > 0){ + $strRq .= " LIMIT :limit"; + } + + $rqPrep = $this->_db->prepare($strRq); + + if ($strKeywords != '') { + $rqPrep->bindValue(':keywords', '%' . $strKeywords . '%', PDO::PARAM_STR); + } + if ($intAuthor > 0){ + $rqPrep->bindValue(':author', $intAuthor, PDO::PARAM_INT); + } + if ($intCategory > 0){ + $rqPrep->bindValue(':category', $intCategory, PDO::PARAM_INT); + } + if ($intPeriod == 0){ + if ($strDate != ''){ + $rqPrep->bindValue(':date_exacte', $strDate, PDO::PARAM_STR); + } + } else { + if ($strStartDate != '' && $strEndDate != ''){ + $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR); + $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR); + } else { + if ($strStartDate != ''){ + $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR); + } else if ($strEndDate != ''){ + $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR); + } + } + } + if ($intLimit > 0){ + $rqPrep->bindValue(':limit', $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + return $rqPrep->fetchAll(); + } + + + /** + * Fonction d'insertion d'un nouveau projet dans la bdd + * @param object $objProject l'objet projet + * @return bool Est-ce que la requête s'est bien passée + */ + public function insert(object $objProject):bool{ + + $strRq = "INSERT INTO project (project_title, project_description, project_thumbnail, project_content, project_status, project_creation_date, project_user_id, project_category) + VALUES (:title, :description, :thumbnail, :content, :status, DATE(NOW()), :project_user_id, :project_category)"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":title", $objProject->getTitle(), PDO::PARAM_STR); + $rqPrep->bindValue(":description", $objProject->getDescription(), PDO::PARAM_STR); + $rqPrep->bindValue(":thumbnail", $objProject->getThumbnail(), PDO::PARAM_STR); + $rqPrep->bindValue(":content", $objProject->getContent(), PDO::PARAM_STR); + $rqPrep->bindValue(":status", $objProject->getStatus(), PDO::PARAM_STR); + $rqPrep->bindValue(":project_user_id", $objProject->getUser_id(), PDO::PARAM_STR); + $rqPrep->bindValue(":project_category", $objProject->getCategory(), PDO::PARAM_STR); + + $boolOk = $rqPrep->execute(); + + if ($boolOk) { + $objProject->setId($this->_db->lastInsertId()); + } + + return $boolOk; + } + + /** + * Fonction de recherche d'un seul projet + * @param int $intId + * @return array|bool + */ + public function findOne(int $intId) :array|bool{ + $strRq = "SELECT project.*, + users.user_pseudo AS 'project_creatorname', + users.user_image, + users.user_mail, + category.category_name + FROM project + INNER JOIN users ON users.user_id = project.project_user_id + LEFT JOIN category ON category.category_id = project.project_category + WHERE project.project_id = :id + AND project.project_deleted_at IS NULL"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $intId, PDO::PARAM_INT); + $rqPrep->execute(); + + return $rqPrep->fetch(); + } + + /** + * Fonction de changement de status (accepter) d'un projet en BDD + * @param int $id l'id du projet + * @return bool Est-ce que la requête s'est bien passée + */ + public function accept(int $id){ + + $strRq = "UPDATE project + SET project_status = 'publié', + project_edit_date = NOW() + WHERE project_id =".$id; + + return $this->_db->query($strRq); + } + + /** + * Fonction de changement de status (refusé) d'un projet en BDD + * @param int $id l'id du projet + * @return bool Est-ce que la requête s'est bien passée + */ + public function refuse(int $id){ + + $strRq = "UPDATE project + SET project_status = 'refusé', + project_edit_date = NOW() + WHERE project_id =".$id; + + return $this->_db->query($strRq); + } + + /** + * Fonction de suppression d'un projet en BDD + * @param int $id l'id du projet + * @return bool Est-ce que la requête s'est bien passée + */ + public function delete_soft_project(int $intId): bool { + $strRq = "UPDATE project + SET project_deleted_at = NOW(), + project_edit_date = NOW(), + project_status = 'supprimé' + WHERE project_id = :id"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $intId, PDO::PARAM_INT); + + return $rqPrep->execute(); + } + + /** + * Fonction de mise à jour d'un projet en BDD + * @param object $objProject L'objet utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + public function updateProject(object $objProject):bool{ + + $strRq = "UPDATE project + SET project_title = :title, + project_description = :description, + project_content = :content, + project_thumbnail = :thumbnail, + project_status = 'en_attente', + project_edit_date = NOW() + WHERE project_id = :id"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":title", $objProject->getTitle(), PDO::PARAM_STR); + $rqPrep->bindValue(":description", $objProject->getDescription(), PDO::PARAM_STR); + $rqPrep->bindValue(":content", $objProject->getContent(), PDO::PARAM_STR); + $rqPrep->bindValue(":thumbnail", $objProject->getThumbnail(), PDO::PARAM_STR); + $rqPrep->bindValue(":id", $objProject->getId(), PDO::PARAM_INT); + + return $rqPrep->execute(); + } + + /** + * Fonction de récupération d'image d'un projet en BDD + * @param int $objProject L'Id du projet choisit + * @return array Un tableau avec les informations de la bdd + */ + public function getImagesByProjectId(int $projectId): array { + $strRq = "SELECT image_id, image_name, image_alt, image_status + FROM image + WHERE image_project = :id"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $projectId, PDO::PARAM_INT); + $rqPrep->execute(); + + return $rqPrep->fetchAll(PDO::FETCH_ASSOC); + } + + /** + * Fonction de récupération d'image d'un projet en BDD + * @param int $id L'Id de l'image choisit + * @return array Un tableau avec les informations de la bdd + */ + public function deleteImage(int $id): bool { + $strRq = "DELETE FROM image WHERE image_id = :id"; + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(':id', $id, PDO::PARAM_INT); + return $rqPrep->execute(); + } + + /** + * Fonction de modifications de status de l'image d'un projet en BDD + * @param int $id L'Id de l'image choisit, string $status le status choisit + * @return array Un tableau avec les informations de la bdd + */ + public function updateImageStatus(int $id, string $status): bool { + $strRq = "UPDATE image + SET image_status = :status + WHERE image_id = :id"; + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(':status', $status, PDO::PARAM_STR); + $rqPrep->bindValue(':id', $id, PDO::PARAM_INT); + return $rqPrep->execute(); + } + + /** + * Fonction de récupération d'image d'un projet en BDD + * @param int $id L'Id de l'image choisit + * @return array Un tableau avec les informations de la bdd + */ + public function findImage(int $id): array|bool { + $strRq = "SELECT * FROM image + WHERE image_id = :id"; + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(':id', $id, PDO::PARAM_INT); + $rqPrep->execute(); + return $rqPrep->fetch(PDO::FETCH_ASSOC); + } + + + /** + * Ajoute une image liée à un projet dans la table 'image' + * @param string $fileName Nom du fichier image + * @param int $projectId ID du projet parent + * @param string $alt Texte alternatif + * @return bool + */ + public function addImageInProject(string $fileName, int $projectId, string $alt = "Image projet"): bool { + $strRq = "INSERT INTO image ( + image_name, + image_alt, + image_status, + image_project + ) + VALUES (:name, :alt, :status, :project)"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":name", $fileName, PDO::PARAM_STR); + $rqPrep->bindValue(":alt", $alt, PDO::PARAM_STR); + $rqPrep->bindValue(":status", "en_attente", PDO::PARAM_STR); + $rqPrep->bindValue(":project", $projectId, PDO::PARAM_INT); + + return $rqPrep->execute(); + } + +} \ No newline at end of file diff --git a/models/UserModel.php b/models/UserModel.php new file mode 100644 index 0000000..f171308 --- /dev/null +++ b/models/UserModel.php @@ -0,0 +1,262 @@ +_db->query($strRq)->fetchAll(); + } + + /** + * Fonction de vérification des utilisateurs + * @param string $strMail + * @param string $strPwd + * @return array|bool + */ + public function verifUser(string $strMail, string $strPwd):array|bool{ + + $strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name, user_pseudo + FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status + WHERE user_mail = :mail"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":mail", $strMail, PDO::PARAM_STR); + $rqPrep->execute(); + + + + $arrUser = $rqPrep->fetch(); + if ($arrUser === false) { + return false; + } + + if (empty($arrUser['user_password'])) { + return false; + } + + if (!password_verify($strPwd, $arrUser['user_password'])) { + return false; + } + unset($arrUser['user_password']); + return $arrUser; + } + + /** + * Fonction d'insertion d'un utilisateur en BDD + * @param object $objUser L'objet utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + public function insert(object $objUser):bool{ + + $strRq = "INSERT INTO users (user_name, user_firstname, user_pseudo, user_mail, user_password, user_phone, user_work, user_location, user_description) + VALUES (:name, :firstname, :pseudo,:mail, :pwd, :phone, :work, :location,:description)"; + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":name", $objUser->getName(), PDO::PARAM_STR); + $rqPrep->bindValue(":firstname", $objUser->getFirstname(), PDO::PARAM_STR); + $rqPrep->bindValue(":pseudo", $objUser->getPseudo(), PDO::PARAM_STR); + $rqPrep->bindValue(":mail", $objUser->getMail(), PDO::PARAM_STR); + $rqPrep->bindValue(":pwd", $objUser->getPwdHash(), PDO::PARAM_STR); + $rqPrep->bindValue(':phone', $objUser->getPhone() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':work', $objUser->getWork() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':location', $objUser->getLocation() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':description', $objUser->getDescription() ?? "", PDO::PARAM_STR); + + return $rqPrep->execute(); + } + + /** + * Méthode pour sauvegarder l'utilisateur lorsqu'il veut être souvenue + * @param int $userId l'id de l'utilisateur a se rappeler + * @param string $token Token hashé unique lié à l'utilisateur à se rappeler + * @return bool Est-ce que la requête s'est bien passée + */ + public function remember(int $userId, string $token):bool{ + $strRq = "INSERT INTO tokens (token_user_id, token_hash, token_created_at, token_expire_at) VALUES (:id, :token, NOW(), :exp)"; + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $userId, PDO::PARAM_INT); + $rqPrep->bindValue(":token", $token, PDO::PARAM_STR); + $rqPrep->bindValue(":exp", + date('Y-m-d H:i:s', time() + (15*24*60*60)) + , PDO::PARAM_STR); + return $rqPrep->execute(); + } + + /** + * Méthode pour récupperer l'utilisateur par rapport au cookie enregistrer + * @param string $hash Token hashé unique lié à l'utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + + public function getTokenUser(string $hash){ + $strRq = $this->_db->prepare("SELECT token_user_id FROM tokens WHERE token_hash = :hash AND token_expire_at > NOW()"); + $strRq->execute(['hash' => $hash]); + return $strRq->fetch(); + } + + /** + * Méthode pour supprimer le token lors de la déconnexion + * @param string $hash Token hashé unique lié à l'utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + public function deleteToken(string $hash){ + $strRq = $this->_db->prepare("DELETE FROM tokens WHERE token_hash = :hash"); + return $strRq->execute(['hash' => $hash]); + } + + + /** + * Méthode pour mettre a jour l'utilisateur + * @param object $objUser L'objet user a mettre à jour + * @return bool Est-ce que la requête s'est bien passée + */ + public function update(object $objUser):bool{ + $strRq = "UPDATE users SET + user_name = :name, + user_firstname = :firstname, + user_pseudo = :pseudo, + user_mail = :mail, + user_phone = :phone, + user_work = :work, + user_location = :location, + user_description = :description, + user_image = :image + WHERE user_id = :id"; + + + $rqPrep = $this->_db->prepare($strRq); + + $rqPrep->bindValue(":id", $objUser->getId(), PDO::PARAM_INT); + $rqPrep->bindValue(":name", $objUser->getName(), PDO::PARAM_STR); + $rqPrep->bindValue(":firstname", $objUser->getFirstname(), PDO::PARAM_STR); + $rqPrep->bindValue(":pseudo", $objUser->getPseudo(), PDO::PARAM_STR); + $rqPrep->bindValue(":mail", $objUser->getMail(), PDO::PARAM_STR); + $rqPrep->bindValue(':phone', $objUser->getPhone() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':work', $objUser->getWork() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':location', $objUser->getLocation() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':description', $objUser->getDescription() ?? "", PDO::PARAM_STR); + $rqPrep->bindValue(':image', $objUser->getImage() ?? "", PDO::PARAM_STR); + + return $rqPrep->execute(); + + } + + /** + * Fonction de vérification de mail + * @param string $mail + * @return bool Est-ce que la requête s'est bien passée + */ + public function mailExists(string $mail): bool{ + + $rq = $this->_db->prepare("SELECT 1 FROM users WHERE user_mail = :mail LIMIT 1"); + $rq->bindValue(":mail", $mail); + $rq->execute(); + + return (bool)$rq->fetchColumn(); + } + + /** + * Fonction de changement de status d'un utilisateur + * @param object $objUser L'objet utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + + public function editStatus(object $objUser):bool{ + + $strRq = "UPDATE users + SET user_status = :status + WHERE user_id = :id"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $objUser->getId(), PDO::PARAM_INT); + $rqPrep->bindValue(":status", $objUser->getStatus(), PDO::PARAM_INT); + return $rqPrep->execute(); + } + + /** + * Fonction permettant de supprimer un utilisateur avec une date de suppression + * @param int $intId L'identifiant de l'utilisateur + * @return bool Est-ce que la requête s'est bien passée + */ + public function delete_soft(int $intId):bool{ + + $strRq = "UPDATE users + SET user_deleted_at = NOW() + WHERE user_id = :id"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":id", $intId, PDO::PARAM_INT); + return $rqPrep->execute(); + } + + /** + * Récupère les informations d'un utilisateur par son ID + * @param int $intId L'identifiant de l'utilisateur + * @return array Tableau associatif (ou false si pas trouvé) + */ + public function findUserById(int $intId): array|bool { + + $strRq = "SELECT user_id,user_status ,user_image ,user_name, user_firstname, user_pseudo, user_mail, user_phone, user_work, user_location, user_description, authorisation_name + FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status + WHERE user_id = :id"; + + $prep = $this->_db->prepare($strRq); + $prep->bindValue(':id', $intId, PDO::PARAM_INT); + $prep->execute(); + + return $prep->fetch(); + } + + /** + * Récupère les informations d'un utilisateur par son ID + * @param string $strPseudo Pseudo de l'utilisateur + * @return array Tableau associatif (ou false si pas trouvé) + */ + public function findUserByPseudo(string $strPseudo): array|bool { + + $strRq = "SELECT user_id,user_image, user_status ,user_name, user_firstname, user_pseudo, user_mail, user_phone, user_work, user_location, user_description, authorisation_name + FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status + WHERE user_pseudo = :pseudo"; + + $prep = $this->_db->prepare($strRq); + $prep->bindValue(':pseudo', $strPseudo, PDO::PARAM_STR); + $prep->execute(); + + return $prep->fetch(); + } + + /** + * Verifie sur le pseudo entré n'est pas déjà utilisé + * @param string $pseudo Pseudo a verifié + * @return bool Le pseudo existe ou pas + */ + public function pseudoExists(string $pseudo): bool{ + + $rq = $this->_db->prepare("SELECT 1 FROM users WHERE user_pseudo = :pseudo LIMIT 1"); + $rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR); + $rq->execute(); + + return (bool)$rq->fetchColumn(); + } + } diff --git a/uploads/profiles/.gitkeep b/uploads/profiles/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uploads/projects/.gitkeep b/uploads/projects/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/views/.gitkeep b/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/views/_partial/apigeo.tpl b/views/_partial/apigeo.tpl new file mode 100644 index 0000000..fb32c47 --- /dev/null +++ b/views/_partial/apigeo.tpl @@ -0,0 +1,112 @@ + + \ No newline at end of file diff --git a/views/_partial/delphoto.tpl b/views/_partial/delphoto.tpl new file mode 100644 index 0000000..019ebcb --- /dev/null +++ b/views/_partial/delphoto.tpl @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/views/_partial/footer.tpl b/views/_partial/footer.tpl new file mode 100644 index 0000000..1bff1bf --- /dev/null +++ b/views/_partial/footer.tpl @@ -0,0 +1,23 @@ + + + + + + diff --git a/views/_partial/header.tpl b/views/_partial/header.tpl new file mode 100644 index 0000000..61c2094 --- /dev/null +++ b/views/_partial/header.tpl @@ -0,0 +1,110 @@ + + + + + + + + + + Folliow{block name="title"}{/block} + + + + + {include file="views/_partial/messages.tpl"} + + +
+
+
+

+ {block name="h2"}{/block} +

+

+ {block name="p"}{/block} +

+

+ {block name="date_maj"}{/block} +

+
+
+
diff --git a/views/_partial/messages.tpl b/views/_partial/messages.tpl new file mode 100644 index 0000000..29cf5b4 --- /dev/null +++ b/views/_partial/messages.tpl @@ -0,0 +1,14 @@ + + {if ($success_message != '')} +
+

{$success_message}

+
+ {/if} + + {if (isset($arrError) && count($arrError) > 0) } +
+ {foreach $arrError as $strError} +

{$strError}

+ {/foreach} +
+ {/if} diff --git a/views/_partial/preview.tpl b/views/_partial/preview.tpl new file mode 100644 index 0000000..dceb12f --- /dev/null +++ b/views/_partial/preview.tpl @@ -0,0 +1,111 @@ +
+
+ + + + + +
getCreatorName()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */ + background-image: repeating-linear-gradient( + 45deg, + transparent, + transparent 30px, + rgba(0, 0, 0, 0.15) 30px, + rgba(0, 0, 0, 0.15) 60px + ) !important; + color: #000 !important; + position: relative; + z-index: 1;"{/if}> +
+ + Photo de profil + +
+

{$objProject->getTitle()}

+

+ + + {$objProject->getCreatorname()} + +

+

+ Colmar +

+
+
+ + + + {if isset($smarty.session.user)} + {if ($smarty.session.user.user_id == $objProject->getUser_id()) && $objProject->getStatus() == "en_attente" && $objProject->getStatus() == "accepté"} + + Editer + + {/if} + {/if} +
+ + {if isset($smarty.session.user) + and $smarty.session.user.user_status == 2 + and $objProject->getStatus() == "en_attente"} + + {elseif $objProject->getStatus() == "refusé"} + + {elseif $objProject->getStatus() == "supprimé"} + + {/if} +
+
diff --git a/views/about.tpl b/views/about.tpl new file mode 100644 index 0000000..c75c438 --- /dev/null +++ b/views/about.tpl @@ -0,0 +1,197 @@ +{extends file="views/layout.tpl"} + +{block name="title" append} - À propos{/block} + +{block name="h2"}À propos{/block} +{block name="p"}Plateforme de partage de portfolio – Projet pédagogique{/block} + +{block name="content"} + +
+ +
+ + +
+ + +
+

+ + Présentation du projet +

+ +

+ FOLLIOW est un réseau social dédié aux portfolios numériques. +

+ +

+ La plateforme permet à chacun de créer un profil personnalisé, de mettre en avant ses projets + et de valoriser ses compétences à travers une présentation claire et professionnelle. +

+ +

+ Les recruteurs et visiteurs peuvent rechercher des profils, consulter les réalisations + et prendre contact avec les utilisateurs qui les intéressent. +

+ +

+ Ce projet a été développé dans un cadre pédagogique afin de concevoir une application web + complète simulant un environnement professionnel réel. +

+
+ + +
+

+ + Fonctionnalités principales +

+ +
+
+
    +
  • + + Création et gestion de projets +
  • +
  • + + Affichage dynamique des contenus +
  • +
  • + + Gestion des utilisateurs +
  • +
+
+ +
+
    +
  • + + Partage d’un projet par email +
  • +
  • + + Interface responsive et accessible +
  • +
+
+
+
+ + +
+

+ + Objectifs pédagogiques +

+ +

+ L’objectif principal de FOLLIOW est de démontrer la capacité à concevoir + une application web complète, structurée et sécurisée. +

+ +
    +
  • Structuration d’un projet en architecture MVC
  • +
  • Manipulation de bases de données relationnelles
  • +
  • Validation et sécurisation des données
  • +
  • Implémentation d’un système d’envoi d’emails
  • +
  • Respect des bonnes pratiques (RGPD, accessibilité, organisation du code)
  • +
+
+ + +
+

+ + Technologies utilisées +

+ +
+ +
+
+ Backend +

+ PHP orienté objet – Architecture MVC – MySQL +

+
+
+ +
+
+ Frontend +

+ HTML5 – CSS3 – Bootstrap – Smarty +

+
+
+ +
+
+ Emails +

+ PHPMailer – SMTP – Brevo +

+
+
+ +
+
+ Sécurité +

+ Validation des données – Protection des formulaires – Gestion des sessions +

+
+
+ +
+
+ +
+ + +
+ +
+ +
+

+ + Projet pédagogique +

+ +

+ FOLLIOW a été développé dans le cadre du module PROJET WEB 2, + consacré à la conception d’une application web dynamique en PHP orienté objet (architecture MVC), + au sein d’une formation en Développement Web et Web Mobile à CCI Campus Colmar. + Il s’agit d’une plateforme démonstrative réalisée à des fins pédagogiques. +

+
+ +
+

+ + Contact +

+ +

+ Pour toute question : +

+ + + projet.folliow@hotmail.com + +
+ +
+ +
+ +
+ +
+ +{/block} \ No newline at end of file diff --git a/views/addedit_project.tpl b/views/addedit_project.tpl new file mode 100644 index 0000000..96f8c0f --- /dev/null +++ b/views/addedit_project.tpl @@ -0,0 +1,105 @@ +{extends file="views/layout.tpl"} + +{block name="h2"}Ajouter un projet{/block} +{block name="p"}Ajouter un projet à votre portfolio{/block} + + +{block name="content"} +
+ {if isset($smarty.session.user)} +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ Catégorie + +
+
+ +
+ + + {if $objProject && $objProject->getId()} + + Miniature + {/if} +
+ +
+ + {assign var="nbActuel" value=$arrImages|@count} + {assign var="disponible" value=20 - $nbActuel} + + {if $disponible > 0} +

Il vous reste {$disponible} emplacement(s) libre(s).

+ + {else} +
+ Quota de 20 photos atteint. +
+ + {/if} +
+ +
+ + {foreach $arrImages as $image} +
+
+ {$image.image_alt} + +
+ + {$image.image_status|replace:'_':' '} + + +
+ Supprimer +
+
+
+
+ {foreachelse} +

Aucune photo dans la galerie pour le moment.

+ {/foreach} +
+ +
+ +
+
+ {else} +
+

Vous devez vous connecter pour accéder à cette fonctionnalité

+
+ {/if} +
+{/block} \ No newline at end of file diff --git a/views/admin.tpl b/views/admin.tpl new file mode 100644 index 0000000..df2183a --- /dev/null +++ b/views/admin.tpl @@ -0,0 +1,109 @@ +{extends file="views/layout.tpl"} + +{block name="h2"}Admin{/block} +{block name="p"}Tableau de bord administrateur{/block} + +{block name="content"} + +
+ +
+

Dashboard

+ Connecté : {$smarty.session.user.user_name} {$smarty.session.user.user_firstname} +
+ + +
+
+ 👤 Gestion des utilisateurs +
+
+

Modifier le statut ou supprimer un compte utilisateur.

+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ + +
+ + +
+
+
+ ✏️ Modifier une catégorie +
+
+

Renommer une catégorie existante.

+
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+ ➕ Créer une catégorie +
+
+

Ajouter une nouvelle catégorie au catalogue.

+
+
+ + +
+ +
+
+
+
+ +
+
+ +{/block} diff --git a/views/error_403.tpl b/views/error_403.tpl new file mode 100644 index 0000000..4fdb493 --- /dev/null +++ b/views/error_403.tpl @@ -0,0 +1,9 @@ +{extends file="views/layout.tpl"} + +{block name="content"} +
+

Erreur 403

+

Vous n'êtes pas autorisé à accéder à cette page !

+ +
+{/block} \ No newline at end of file diff --git a/views/error_404.tpl b/views/error_404.tpl new file mode 100644 index 0000000..41e395b --- /dev/null +++ b/views/error_404.tpl @@ -0,0 +1,9 @@ +{extends file="views/layout.tpl"} + +{block name="content"} +
+

Erreur 404

+

Cette page n'existe pas !

+ +
+{/block} \ No newline at end of file diff --git a/views/help.tpl b/views/help.tpl new file mode 100644 index 0000000..4e75efa --- /dev/null +++ b/views/help.tpl @@ -0,0 +1,245 @@ +{extends file="views/layout.tpl"} + +{block name="h2"}Bienvenue sur l'aide & support de Folliow !{/block} +{block name="p"}Ici, vous trouverez de l'aide pour naviguer sur notre site.{/block} + +{block name="content"} + +
+{if isset($smarty.session.user)} + + {if $smarty.session.user.user_status == 3} +
+
+

+ +

+
+
+

Un haut, dans votre barre de navigation, vous avez un lien pour ajouter un nouveau projet. + Il faudra remplir votre projet avec un titre, une description, des images (jusqu'à 20 par projet) et une image de présentation qui apparaitra en illustration dans la liste des projets.
+ Plus votre projet est rempli, plus il sera intéressant pour les autres profils, alors n'hésitez pas à bien le remplir !

+
+
+
+
+

+ +

+
+
+

Une fois votre projet créé, vous avez la possibilité de modifier son contenu. Si vous êtes bien connecté à votre compte, vous pouvez aller sur votre profil et dans la liste de vos projets, + il vous suffira de cliquer sur "éditer" pour voir toutes les informations apparaitres et changer directement ce que vous souhaitez modifier. + N'oubliez pas de valider vos modifications !

+
+
+
+
+

+ +

+
+
+

Si vous êtes bien connecté à votre compte, vous pouvez cliquer sur votre photo de profil en haut à droite de votre écran pour accéder à votre profil. + Vous pourrez ensuite modifier vos informations directement depuis votre profil ! + Simple comme "bonjour" :)

+
+
+
+
+

+ +

+
+
+

Si vous avez des questions ? Un problème avec votre compte ? + Vous souhaitez supprimer toutes vos données ou débloquer votre compte suite à une modération ? N'hésitez pas à nous écrire à projet.folliow@hotmail.com !

+
+
+
+
+ + {elseif $smarty.session.user.user_status == 2} +
+
+

+ +

+
+
+

Bienvenue dans notre team de modérateurs ! Vous avez maintenant accès à de nouvelles fonctionnalités. + Vous verez le statut de chaque projet et image en dessous de chacun. Si rien n'est mentionné, celà signifie que le projet est déjà approuvé !

+
+
+
+
+

+ +

+
+
+

Très bonne question ! En plus du statut du projet ou de l'image, vous avez également accès à 3 boutons : approuver, refuser et supprimer. + Si le projet est valide à nos conditions d'utilisation de Folliow, vous pouvez l'approuver. Si vous pensez qu'il faut légèrement modifier ou adapter, vous pouvez le refuser et l'utilisateur pourra modifier son projet.

+

Et si le projet enfreint nos règles d'utilisation, vous pouvez supprimer le projet de l'utilisateur. Attention, cette action est définitive. + N'hésitez pas à signaler un utilisateur à l'administrateur en cas de besoin !

+
+
+
+
+

+ +

+
+
+ De la même manière que vous pouvez modérer un projet ! Dans la liste des images, vous aurez la possibilité de refuser, approuver ou bien supprimer une image. +
+
+
+
+

+ +

+
+
+

Si vous avez des questions ? Une fonctionnalité que vous avez du mal à comprendre ? Des suggestions d'amélioration ? N'hésitez pas à nous écrire à projet.folliow@hotmail.com !

+
+
+
+
+ + {elseif $smarty.session.user.user_status == 1} +
+
+

+ +

+
+
+

Rien de plus simple ! Si vous êtes connecté à votre compte, un lien "admin" sera visible dans votre barre de navigation. + Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !

+
+
+
+
+

+ +

+
+
+

La première fonctionnalité accessible sur votre Dashbord est la maintenance utilisateur. Vous pouvez dans le menu déroulant seléctionner l'utilisateur concerné par votre action. + Un nouveau modérateurs rejoint l'équipe ? Il suffira ensuite de choisir dans le menu déroulant, son nouveau statut ! N'oubliez pas de valider la modification !

+

Oh, oh... Quelqu'un n'a pas respecté nos règles de modération et vous devez maintenant supprimer cette utilisateur... Après l'avoir séléctionné, vous pouvez appuyer sur le bouton "supprimer l'utilisateur". + Nous vous demanderons une confirmation avant de finaliser la suppression. Attention ! Cette action est définitive et l'utilisateur perdra tous ses projets !

+
+
+
+
+

+ +

+
+
+

Voici la seconde partie de votre Dashbord. Si celà vous semble judicieux ou suite à des suggestions d'utilisateurs, vous pouvez modifier l'intitulé d'une catégorie. + Dans le menu déroulant, choisissez la catégorie concerncée, puis écrivez son nouveau nom dans le champ "nouveau nom de la catégorie". N'oubliez pas de valider le changement !

+

Et si vous souhaitez créer une nouvelle catégorie, écrivez son intitulé dans le champ "nom de la nouvelle catégorie" et validez la création. Votre nouvelle catégorie apparait déjà dans le menu déroulant !

+

La suppression d'une catégorie n'est pas possible, car beaucoup de projet se retrouveraient orphelins :( Mais avec la modification et la création, vous avez les outils nécessaire pour organiser le classement de tous nos beaux projets.

+
+
+
+
+

+ +

+
+
+

Vous avez des questions ? Un problème avec votre espace administrateur ou une suggestion d'amélioration ? N'hésitez pas à nous écrire à projet.folliow@hotmail.com !

+

+
+
+
+ {/if} + +{else} +
+
+

+ +

+
+
+

Folliow est un réseau social de portfolio. Il vous permet de rassembler et mettre en avant tous les projets que vous avez effectué ! + Et si vous êtes rectruteur à la recherche de talents, vous pourrez rechercher les profils en fonction de vos besoins, partager leur contenus et les contacter si vous souhaitez collaborer avec eux.

+
+
+
+
+

+ +

+
+
+

En haut à droite de votre écran, vous avez le lien "s'inscrire". Nous demandons certaines informations obligatoires pour l'identification, + ensuite à vous de remplir les informations complémentaires pour alimenter votre profil et permettre aux autres utilisateurs de mieux vous connaitre et vous contacter.

+
+
+
+
+

+ +

+
+
+

Lorsque vous consultez un projet, vous pouvez remplir le champ "email" avec l'email de la personne à qui vous souhaitez partager le projet. + Votre contact recevra en moins de 5 minutes, un mail de notre part avec le lien vers le projet en question ! Pratique, n'est-ce pas ?

+
+
+
+
+

+ +

+
+
+

Si vous avez des questions, n'hésitez pas à nous écrire à projet.folliow@hotmail.com !

+
+
+
+
+{/if} +
+
+
+ +{/block} \ No newline at end of file diff --git a/views/home.tpl b/views/home.tpl new file mode 100644 index 0000000..df0bdcb --- /dev/null +++ b/views/home.tpl @@ -0,0 +1,43 @@ +{extends file="views/layout.tpl"} +{block name="display" }style="display:none;"{/block} +{block name="content"} +
+

Folliow

+

Là où les talents rencontrent leur avenir

+

Une plateforme de portfolio adapté à vos besoins et aux besoins des entreprises. + Créer un portfolio réellement pertinent aux exigences du marché et rentrez + directement en contact avec les entreprises.

+
+ +
+
+
+ + + + Tout +
+
+
+ +
+

Les 4 derniers articles

+
+ + {foreach from=$arrProjectToDisplay item=objProject} + + {assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())} + {assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)} + {assign var="isDeleted" value=($objProject->getDeleted_at() !== null)} + {assign var="isRefused" value=($objProject->getStatus() == "refusé")} + + {if $isModerator + || ($isAuthor && !$isDeleted) + || (!$isRefused && !$isDeleted)} + + {include file="views/_partial/preview.tpl"} + {/if} + + {/foreach} +
+{/block} diff --git a/views/layout.tpl b/views/layout.tpl new file mode 100644 index 0000000..6f8d4b6 --- /dev/null +++ b/views/layout.tpl @@ -0,0 +1,8 @@ +{include file="views/_partial/header.tpl"} + +
+ {block name="content"} + {/block} +
+ +{include file="views/_partial/footer.tpl"} \ No newline at end of file diff --git a/views/login.tpl b/views/login.tpl new file mode 100644 index 0000000..3847034 --- /dev/null +++ b/views/login.tpl @@ -0,0 +1,89 @@ +{extends file="views/layout.tpl"} +{block name="title" append} - Connexion{/block} + +{block name="display" }style="display:none;"{/block} +{block name="content"} +
+ +
+ +
+
+ + +
+ + +

Connexion

+ + +

+ Connectez-vous à votre compte. +

+ + + +
+
+ + +
+ + +
+ + +
+ + +
+
+ + +
+ + +
+ +
+ + +
+ + Pas encore de compte ? + + Créer un compte + + +
+ +
+
+ +
+ +
+
+
+ +
+{/block} diff --git a/views/mail_message.tpl b/views/mail_message.tpl new file mode 100644 index 0000000..cdab24c --- /dev/null +++ b/views/mail_message.tpl @@ -0,0 +1,27 @@ +

Bonjour,

+ +

+ Un projet a été partagé avec vous via la plateforme Folliow. +

+ +

{$projectTitle}

+ +

+ {$projectDescription} +

+ +

+ Vous pouvez consulter le projet en cliquant sur le lien ci-dessous : +

+ +

+ + {$projectUrl} + +

+ +

+ Cordialement,
+ L’équipe Folliow +

+ diff --git a/views/mentions.tpl b/views/mentions.tpl new file mode 100644 index 0000000..e2c3f1a --- /dev/null +++ b/views/mentions.tpl @@ -0,0 +1,287 @@ +{extends file="views/layout.tpl"} + +{block name="title" append} - Mentions légales{/block} + +{block name="h2"}Mentions légales{/block} +{block name="p"}Informations légales et politique de confidentialité{/block} + +{block name="date_maj"} +

+ + Dernière mise à jour : +

+{/block} + +{block name="js_footer" append} + +{/block} + +{block name="content"} +
+

Mentions légales

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

+ Pour toute question concernant ces mentions légales ou pour exercer vos droits, vous pouvez nous contacter : +

+ +
+ +
+
+
+{/block} \ No newline at end of file diff --git a/views/project.tpl b/views/project.tpl new file mode 100644 index 0000000..1e88fab --- /dev/null +++ b/views/project.tpl @@ -0,0 +1,75 @@ +{extends file="views/layout.tpl"} + +{block name="content"} + +
+
+

Alimenter votre projet

+
+ + {if isset($smarty.post.toContinue)} + + {/if} +
+ + {* Affichage d'un formulaire en cas d'appuie sur le bouton "+" *} + {if isset($smarty.post.showForm) || isset($smarty.post.showFormContinue)} + {if isset($smarty.session.user)} +
+
+ + +
+
+ + +
+
+ + +
+
+

Image thumbnail

+ +
+
+

Image du projet

+ +
+
+ + +
+
+ {else} +
+

Vous devez vous connecter pour accéder à cette fonctionnalité

+
+ {/if} + {/if} + +
+
+

Description

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+
+
+

Photos behind the scene

+
+ +
+
+
+

Other projects

+
+ {foreach $arrProjectToDisplay as $objProject} + {include file="../app/views/partials/preview.tpl"} + {/foreach} +
+
+ +
+ +{/block} \ No newline at end of file diff --git a/views/project_display.tpl b/views/project_display.tpl new file mode 100644 index 0000000..6cc8d8c --- /dev/null +++ b/views/project_display.tpl @@ -0,0 +1,178 @@ +{extends file="views/layout.tpl"} + +{block name="title" append} - {$objProject->getTitle()}{/block} + +{block name="h2"}Projet de {$objProject->getCreatorName()}{/block} + +{block name="p"}Portfolio créatif partagé sur FOLLIOW{/block} + +{block name="content"} + + + {if isset($smarty.get.mail) && $smarty.get.mail === 'ok'} +
Email envoyé avec succès.
+ {elseif isset($smarty.get.mail) && $smarty.get.mail === 'fail'} +
Erreur lors de l'envoi de l'email.
+ {/if} + +
+ + +
+ +

{$objProject->getTitle()}

+ +

+ {$arrProject.category_name ?? 'Général'} +

+ +
+ +
+ +
+

Description

+

{$objProject->getDescription()}

+ +
+ {$objProject->getContent()} +
+
+ + + +
+

Galerie du projet

+
+ {foreach $arrImages as $image} + + {* On affiche l'image si elle est approuvée OU si l'utlilisateur possède le projet OU si l'utlilisateur est Modérateur ET que l'image est disponible sur le serveur*} + {if (($image.image_status == 'approuvé') || + (isset($smarty.session.user) && $smarty.session.user.user_status == 2) || + (isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())) && (($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists)} + +
+
+ + {$image.image_alt} + + {* Visible uniquement par le modérateur *} + {if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2} +
+
+ Valider + + Supprimer +
+
+ {/if} +
+
+ {/if} + {foreachelse} +

Aucune image disponible pour ce projet.

+ {/foreach} +
+
+ + + +
+
+ + + + + + + +
+
+ +
+ + +
+
getCreatorName()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */ + background-image: repeating-linear-gradient( + 45deg, + transparent, + transparent 30px, + rgba(0, 0, 0, 0.15) 30px, + rgba(0, 0, 0, 0.15) 60px + ) !important; + border: 2px solid #000 !important; + color: #000 !important; + position: relative; + z-index: 1;"{/if}> + + + + + +
getCreatorName()|stripos:'minou' !== false}style="font-weight: 800 !important; + text-transform: uppercase; + color: #000 !important;"{/if}> + {$objProject->getCreatorName()} +
+ +

+ Publié le {$objProject->getCreation_date()} +

+ + getCreatorName()|stripos:'minou' !== false}style=" + background-color: #000 !important; + color: #ff8c00 !important; + border: none !important; + font-weight: bold !important; + transition: transform 0.2s;"{/if}> + Contacter le talent + + + {if $objProject->getCreatorName()|stripos:"minou" !== false} +
MINOU NE MEURT JAMAIS ! 🐯
+ {/if} +
+
+ {*Controle de l'utilisateur ainsi que du status du projet + Suppression disponible pour l'utilisateur possédant le projet*} + {if isset($smarty.session.user)} + {if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())} +
+ + Supprimer + {/if} + + + {if $smarty.session.user.user_id == $objProject->getUser_id()} + Modifier le projet + {/if} + + {*Conditions permettant au Modérateur de modifier le status d'un projet*} + {if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"} + Accepter + Refuser +
+ {elseif $projectStatus == "refusé"} +

Portfolio refusé

+ {/if} + {/if} + +
+ + +{/block} \ No newline at end of file diff --git a/views/search.tpl b/views/search.tpl new file mode 100644 index 0000000..b0825bc --- /dev/null +++ b/views/search.tpl @@ -0,0 +1,195 @@ +{extends file="views/layout.tpl"} +{block name="title" append} - Rechercher{/block} + +{block name="h2"}Rechercher{/block} +{block name="p"}Recherche de projets par mot clés, date, auteur et catégorie.{/block} + + +{block name="content"} +
+

Rechercher parmi les projets

+
+
+
+

+ + Rechercher des projets +

+ +
+
+ + + + Recherchez dans les titres et contenus + +
+ +
+ + +
+ +
+
+
+ Recherche par date +
+ + +
+
+ + +
+
+
+ + +
+ + + + Format: JJ/MM/AAAA + +
+ + +
+
+
+ Recherche par catégories +
+ + +
+
+
+
+ + + + Réinitialiser + +
+
+
+
+ +
+

Liste des projets

+
+ {if count($arrProject) == 0} +
+

Pas de résultats

+
+ {/if} + {foreach from=$arrProjectToDisplay item=objProject} + + {assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())} + {assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)} + {assign var="isDeleted" value=($objProject->getDeleted_at() !== null)} + {assign var="isRefused" value=($objProject->getStatus() == "refusé")} + + {if $isModerator + || ($isAuthor && !$isDeleted) + || (!$isRefused && !$isDeleted)} + + {include file="views/_partial/preview.tpl"} + {/if} + + {/foreach} +
+
+
+
+ +{/block} diff --git a/views/signup.tpl b/views/signup.tpl new file mode 100644 index 0000000..3d22e0d --- /dev/null +++ b/views/signup.tpl @@ -0,0 +1,278 @@ +{extends file="views/layout.tpl"} +{block name="title" append} - Inscription{/block} + +{block name="display" }style="display:none;"{/block} +{block name="content"} + +
+ + +
+
+ + +
+ + +

Inscription

+ + +

+ Créez votre compte utilisateur. +

+ + + +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ @ + +
+
+ + +
+ + +
+ + +
+ +
+ + +
+
+

Le mot de passe doit contenir :

+
    +
  • Au moins 15 caractères
  • +
  • Au moins une lettre majuscule
  • +
  • Au moins une lettre minuscule
  • +
  • Au moins un chiffre
  • +
  • Au moins un caractère spécial (# ? ! @ $ % ^ & * -)
  • +
+
+
+ + +
+ +
+ +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ + + +
+
+ + +
+ + +
+ + +
+ +
+ + +
+ + Déjà un compte ? + + Se connecter + + +
+ +
+
+ +
+ +
+
+ +
+ +{include file="views/_partial/apigeo.tpl"} +{/block} \ No newline at end of file diff --git a/views/user.tpl b/views/user.tpl new file mode 100644 index 0000000..89a165c --- /dev/null +++ b/views/user.tpl @@ -0,0 +1,88 @@ +{extends file="views/layout.tpl"} + +{block name="content"} + +{assign var="isMinou" value=($user->getPseudo()|stripos:'minou' !== false)} + +
+ + +
+ +
+ + +
+ Avatar de {$user->getPseudo()} +
+ + +
+

+ {$user->getPseudo()} +

+

{$user->getMail()}

+ + {if $user->getWork()} +
+ + {$user->getWork()} +
+ {/if} + + {if $user->getLocation()} +
+ + {$user->getLocation()} +
+ {/if} + + {if $user->getDescription()} +
+ + {$user->getDescription()} +
+ {/if} + + {if isset($smarty.session.user) && $smarty.session.user.user_id == $user->getId()} + + ✏️ Modifier mon profil + + {/if} +
+ +
+
+ + +
+

Les projets de {$user->getPseudo()}

+ +
+ {if count($arrProjectToDisplay) > 0} + {foreach $arrProjectToDisplay as $objProject} + {assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())} + {assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)} + {assign var="isDeleted" value=($objProject->getDeleted_at() !== null)} + {assign var="isRefused" value=($objProject->getStatus() == "refusé")} + + {if $isModerator || ($isAuthor && !$isDeleted) || (!$isRefused && !$isDeleted)} + {include file="views/_partial/preview.tpl"} + {/if} + {/foreach} + {else} +
+

Cet utilisateur n'a pas encore publié de projets.

+
+ {/if} +
+
+ +
+ +{/block} diff --git a/views/useredit.tpl b/views/useredit.tpl new file mode 100644 index 0000000..7b83205 --- /dev/null +++ b/views/useredit.tpl @@ -0,0 +1,211 @@ +{extends file="views/layout.tpl"} + +{block name="content"} + + + +
+ + +
+
+ + +
+ + +

Modification du profil

+ + {if (isset($arrError) && count($arrError) > 0) } +
+ {foreach $arrError as $strError} +

{$strError}

+ {/foreach} +
+ {/if} + + +
+ +
+
+ + +
+ +
+ + +
+ +
+ +
+ @ + +
+
+
+ + +
+ + Photo de profil + + +
+ + {if $objUser->getImage() != "images.jpg"} + + {/if} +
+
+ + + + +
Formats acceptés : JPEG, PNG, WEBP. Laisser vide pour ne pas changer.
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +
+ +
+ + + +
+
+ + +
+ + +
+
+ +
+ + + + +
+ + +
+ +
+
+
+{include file="views/_partial/delphoto.tpl"} +{include file="views/_partial/apigeo.tpl"} +{/block}