/* ==========================================================================
   Jobivoire — Styles communs Back-office (Admin + Entreprise)
   --------------------------------------------------------------------------
   Chargé uniquement par le layout manager (resources/views/layouts/admin/
   manager.blade.php), à la place de la feuille complète du site public.
   Contient : les jetons de marque (--jb-*) et la base commune (resets), les
   composants "jb-*" réellement utilisés dans l'Admin et l'espace Entreprise,
   dupliqués depuis styles.css quand le site public les utilise aussi (pour que
   ce fichier reste autonome, sans dépendre de styles.css).
   Généré à partir d'une analyse d'usage réel des vues manager (Lot de
   découplage CSS Admin/Entreprise vs Site). ========================================================================== */

:root {
    /* Palette de marque */
    --jb-orange: #fe6703;
    --jb-orange-dark: #e25a02;
    --jb-orange-soft: #fff2e9;
    --color-primary-light: #fdecd8;
    --color-primary-lighter: #fff6ee;
    --jb-black: #0b0a0a;
    --jb-white: #ffffff;
    --color-text-muted: #6b7076;
    --color-text-faint: #9a9fa6;

    /* Gris : une seule échelle, pour que rien ne se rapproche « à peu près ». */
    --jb-gray-900: #17161a;
    --jb-gray-800: #2b2a2f;
    --jb-gray-700: #4a484f;
    --jb-gray-600: #6b6870;
    --jb-gray-500: #8e8b94;
    --jb-gray-400: #b4b1ba;
    --jb-gray-300: #dcdadf;
    --jb-gray-200: #e9e7ec;
    --jb-gray-100: #f4f3f6;
    --jb-gray-50: #fafafb;

    --color-bg-soft: #f8f7f6;
    --color-bg-soft-2: #f1efec;
    --color-border: #e8e6e2;
    --color-border-soft: #f0eeeb;

    /* États. Le vert « disponible » de la maquette Talents vit ici. */
    --jb-success: #16a34a;
    --jb-success-soft: #eaf7ef;
    --jb-warning: #d97706;
    --jb-warning-soft: #fdf4e7;
    --jb-danger: #dc2626;
    --jb-danger-soft: #fdecec;
    --jb-info: #2563eb;
    --jb-info-soft: #eaf0fd;

    /* Typographie */
    --jb-font: 'Mulish', 'Google Sans', 'Inter', -apple-system,
        BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --jb-fs-xs: 0.75rem;
    --jb-fs-sm: 0.8125rem;
    --jb-fs-base: 0.9375rem;
    --jb-fs-lg: 1.0625rem;
    --jb-fs-xl: 1.25rem;
    --jb-fs-2xl: 1.5rem;
    --jb-fs-3xl: 2rem;
    --jb-fs-4xl: 2.75rem;

    /* Rayons */
    --jb-radius-sm: 8px;
    --jb-radius: 12px;
    --jb-radius-md: 16px;
    --jb-radius-lg: 20px;
    --jb-radius-pill: 999px;

    /* Ombres : neutres et discrètes, jamais teintées. */
    --jb-shadow-sm: 0 1px 2px rgba(11, 10, 10, .05);
    --jb-shadow: 0 2px 8px rgba(11, 10, 10, .06);
    --jb-shadow-lg: 0 8px 24px rgba(11, 10, 10, .08);

    /* Rythme vertical des sections de page publique. */
    --jb-section-gap: 3.5rem;

    --jb-header-height: 72px;
}
:root {
    --bs-primary: var(--jb-orange);
    --bs-primary-rgb: 254, 103, 3;
    --bs-body-font-family: var(--jb-font);
    --bs-body-font-size: var(--jb-fs-base);
    --bs-body-color: var(--jb-gray-800);
    --bs-body-bg: var(--jb-white);
    --bs-border-color: var(--jb-gray-200);
    --bs-border-radius: var(--jb-radius);
    --bs-link-color: var(--jb-orange);
    --bs-link-hover-color: var(--jb-orange-dark);
    /* `.btn-outline-secondary`/`.badge.bg-secondary` restaient au gris-bleu
       Bootstrap stock : personne n'avait redéfini ces deux variables. */
    --bs-secondary: var(--jb-gray-800);
    --bs-secondary-rgb: 43, 42, 47;
    /* Halo de focus natif (inputs/selects/boutons) : bleu Bootstrap stock par
       défaut, jamais raccordé à --bs-primary-rgb (valeur figée à la
       compilation Sass, pas dynamique). */
    --bs-focus-ring-color: rgba(var(--bs-primary-rgb), .25);
}
*,
*::before,
*::after {
    box-sizing: border-box;
}
body {
    margin: 0;
    font-family: var(--jb-font);
    font-size: var(--jb-fs-base);
    color: var(--jb-gray-800);
    background: var(--jb-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
    color: var(--jb-black);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 .5rem;
}
h1 { font-size: var(--jb-fs-3xl); }
h2 { font-size: var(--jb-fs-2xl); }
h3 { font-size: var(--jb-fs-xl); }
p { margin: 0 0 1rem; }
a {
    color: var(--jb-orange);
    text-decoration: none;
    transition: color .15s ease;
}
a:hover { color: var(--jb-orange-dark); }
img {
    max-width: 100%;
    height: auto;
}
@media (max-width: 767.98px) {
        .jb-nav-link,
        .jb-btn:not(.jb-btn--sm),  
        .jb-user-menu {
            min-height: 44px;
        } 
}
svg.lucide{ 
  width: 17px;
  height: 17px;
}
.jb-section {
    padding: 1rem 0 2rem 0;
}
.jb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .6875rem 1.25rem;
    border: 1px solid transparent;
    border-radius: var(--jb-radius-sm);
    font-family: inherit;
    font-size: var(--jb-fs-base);
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.jb-btn:disabled,
.jb-btn.is-disabled {
    opacity: .55;
    cursor: not-allowed;
}
.jb-btn.is-loading {
    opacity: .85;
    cursor: wait;
}
.btn.is-loading {
    cursor: wait;
}
.jb-btn.is-loading > svg,
.jb-btn.is-loading > i:not(.jb-btn-spinner),
.btn.is-loading > svg,
.btn.is-loading > i:not(.jb-btn-spinner) {
    display: none;
}
.jb-icon-btn.is-loading {
    opacity: .85;
    cursor: wait;
    pointer-events: none;
}
.jb-icon-btn.is-loading > svg,
.jb-icon-btn.is-loading > i:not(.jb-btn-spinner) {
    display: none;
}
.jb-icon-btn .jb-btn-spinner {
    margin-inline-end: 0;
}
.jb-btn-spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-inline-end: .5em;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    opacity: .85;
    animation: jb-spin .7s linear infinite;
    vertical-align: -.15em;
    flex: none;
}
.jb-btn .jb-btn-spinner {
    margin-inline-end: 0;
}
@media (prefers-reduced-motion: reduce) {
        .jb-btn-spinner { animation: none; }
}
.jb-btn--primary {
    background: var(--jb-orange);
    color: var(--jb-white);
}
.jb-btn--primary:hover {
    background: var(--jb-orange-dark);
    color: var(--jb-white);
}
.jb-btn--danger {
    background: var(--jb-danger);
    color: var(--jb-white);
}
.jb-btn--danger:hover {
    background: #b91c1c;
    color: var(--jb-white);
}
/* Fond blanc et non `transparent` : sur une page blanche, un bouton
   transparent n'est plus qu'un texte et une bordure gris clair. La barre
   d'actions groupees, sur fond sombre, garde sa propre surcharge plus bas. */
.jb-btn--outline {
    background: var(--jb-white);
    border-color: var(--jb-gray-300);
    color: var(--jb-gray-800);
}
.jb-btn--outline:hover {
    background: var(--jb-gray-100);
    border-color: var(--jb-gray-500);
    color: var(--jb-black);
}
.jb-btn--block { width: 100%; }
.jb-btn--sm {
    padding: .5rem .875rem !important;
    font-size: var(--jb-fs-sm);
}
.jb-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--jb-gray-200);
    border-radius: 50%;
    background: var(--jb-white);
    color: var(--jb-gray-600);
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease;
}
.jb-icon-btn:hover {
    border-color: var(--jb-gray-400);
    color: var(--jb-black);
}
.jb-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem 1rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-meta__item {
    display: inline-flex;
    align-items: center;
    gap: .3125rem;
}
.jb-meta__item svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}
.jb-badge {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .25rem .5rem;
    border-radius: var(--jb-radius-sm);
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}
.jb-badge--orange { background: var(--jb-orange-soft); color: var(--jb-orange-dark); }
.jb-badge--neutral { background: var(--jb-gray-100); color: var(--jb-gray-700); }
.jb-badge--success { background: var(--jb-success-soft); color: var(--jb-success); }
.jb-badge--warning { background: var(--jb-warning-soft); color: var(--jb-warning); }
.jb-badge--danger { background: var(--jb-danger-soft); color: var(--jb-danger); }
.jb-badge--info { background: var(--jb-info-soft); color: var(--jb-info); }
.jb-badge svg { width: 12px; height: 12px; flex: 0 0 auto; }
@keyframes jb-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .55); }
    50% { box-shadow: 0 0 0 4px rgba(255, 255, 255, 0); }
}
.form-control:not([type="file"], .filter-amount-input),
.jb-input,
.jb-select,
.jb-textarea {
    display: block;
    width: 100%;
    padding: .55rem .875rem;
    border: 1px solid var(--jb-gray-300);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-white);
    font-family: inherit;
    font-size: var(--jb-fs-base);
    color: var(--jb-gray-900);
    transition: border-color .15s ease;
}
.form-control:focus,
.jb-input:focus,
.jb-select:focus,
.jb-textarea:focus {
    box-shadow: 0 0 0 3px rgba(239, 105, 68, 0.18);
    outline: none;
    border-color: var(--jb-orange);
}
.jb-input.is-invalid,
.jb-select.is-invalid,
.jb-textarea.is-invalid {
    border-color: var(--jb-danger);
}
.jb-error {
    display: block;
    margin-top: .375rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-danger);
}
.jb-phone-group {
    display: grid;
    grid-template-columns: 9.5rem 1fr;
    gap: .5rem;
}
@media (max-width: 360px) {
        .jb-phone-group {
            grid-template-columns: 1fr;
        }
}
.jb-choice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--jb-gray-300);
    border-radius: var(--jb-radius);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.jb-choice:hover {
    border-color: var(--jb-gray-400);
}
.jb-choice input {
    margin-top: .1875rem;
    accent-color: var(--jb-orange);
}
.jb-choice__title {
    display: block;
    font-weight: 600;
    color: var(--jb-black);
}
.jb-choice__help {
    display: block;
    margin-top: .125rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-choice:has(input:checked) {
    border-color: var(--jb-orange);
    background: var(--jb-orange-soft);
}
.jb-stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--jb-gray-300);
    border-radius: var(--jb-radius-sm);
    overflow: hidden;
}
.jb-stepper button {
    width: 42px;
    border: 0;
    background: var(--jb-white);
    color: var(--jb-gray-700);
    font-size: var(--jb-fs-lg);
    font-weight: 600;
    cursor: pointer;
}
.jb-stepper button:hover {
    background: var(--jb-gray-200);
    color: var(--jb-black);
}
.jb-stepper input:not(.filter-amount-input) {
    width: 80px;
    border: 0;
    border-left: 1px solid var(--jb-gray-300);
    border-right: 1px solid var(--jb-gray-300);
    padding: .625rem .5rem;
    font-family: inherit;
    font-size: var(--jb-fs-base);
    font-weight: 600;
    text-align: center;
    color: var(--jb-black);
}
.jb-stepper input:focus { outline: none; }
.ql-toolbar.ql-snow { border-color: var(--jb-gray-300); border-radius: var(--jb-radius-sm) var(--jb-radius-sm) 0 0; background: var(--jb-gray-50); }
.ql-container.ql-snow { border-color: var(--jb-gray-300); border-radius: 0 0 var(--jb-radius-sm) var(--jb-radius-sm); font-family: inherit; font-size: var(--jb-fs-base); }
.ql-editor { min-height: 160px; }
.ql-editor.ql-blank::before { color: var(--jb-gray-600); font-style: normal; }
.ql-snow .ql-stroke { stroke: var(--jb-gray-700); }
.ql-snow .ql-fill { fill: var(--jb-gray-700); }
.ql-snow.ql-toolbar button:hover, .ql-snow .ql-toolbar button:hover,
.ql-snow.ql-toolbar button.ql-active, .ql-snow .ql-toolbar button.ql-active { color: var(--jb-orange); }
.ql-snow.ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke { stroke: var(--jb-orange); }
.ql-snow.ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill { fill: var(--jb-orange); }
.jb-wizard-head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.jb-wizard-badge {
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: var(--jb-radius);
    background: var(--jb-orange);
    color: var(--jb-white);
    font-weight: 700;
    font-size: var(--jb-fs-lg);
    display: flex;
    align-items: center;
    justify-content: center;
}
.jb-wizard-title {
    font-size: var(--jb-fs-xl);
    margin: 0;
}
.jb-wizard-subtitle {
    margin: .25rem 0 0;
    color: var(--jb-gray-600);
    font-size: var(--jb-fs-sm);
}
.jb-wizard-progress {
    display: flex;
    gap: .375rem;
    margin-bottom: 1.75rem;
}
.jb-wizard-progress__bar {
    flex: 1;
    height: 6px;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-gray-200);
}
.jb-wizard-progress__bar.is-done { background: var(--jb-orange); }
.jb-wizard-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--jb-gray-200);
}
.jb-wizard-shell {
    background: var(--jb-gray-50);
    border-radius: var(--jb-radius-md);
    padding: 1.75rem;
}
@media (max-width: 575.98px) {
        .jb-wizard-shell { padding: 1.25rem; }
}
.jb-chip-group {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.jb-chip { position: relative; }
.jb-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.jb-chip label {
    display: inline-flex;
    align-items: center;
    padding: .5rem 1rem;
    border: 1px solid var(--jb-gray-300);
    border-radius: var(--jb-radius-pill);
    font-size: var(--jb-fs-sm);
    font-weight: 500;
    color: var(--jb-gray-900);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.jb-chip.chip-sm label { 
    padding: .4rem .85rem; 
    font-size: var(--jb-fs-xs); 
}
.jb-chip label:hover { border-color: var(--jb-gray-500); }
.jb-chip input:checked + label {
    border-color: var(--jb-orange);
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
    font-weight: 600;
}
.jb-chip input:focus-visible + label { outline: 2px solid var(--jb-orange); outline-offset: 1px; }
.jb-lang-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .625rem .75rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
}
.jb-lang-row label {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    color: var(--jb-black);
    margin: 0;
}
.jb-lang-row input[type=checkbox] { accent-color: var(--jb-orange); }
.jb-lang-row select { max-width: 170px; }
.jb-lang-row.is-disabled select { opacity: .5; pointer-events: none; }
.jb-kanban {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: .5rem;
}
.jb-kanban__col {
    flex: 0 0 280px;
    background: var(--jb-gray-50);
    border: 1px solid var(--jb-gray-200);
    border-top: 5px solid var(--jb-gray-300);
    border-radius: 8px 8px var(--jb-radius);
    display: flex;
    flex-direction: column;
    max-height: 75vh;
    overflow: hidden;

}
.jb-kanban__col-head {
    display: flex;
    align-items: center;
    gap: .5rem;
    justify-content: space-between;
    padding: .75rem 1rem;
    font-weight: 600;
    color: var(--jb-black);
    border-bottom: 1px solid var(--jb-gray-200);
    background-color: #ffffff;
}
.jb-kanban__col-head i { width: 15px; height: 15px; flex: none; }
.jb-kanban__col-head > span:first-child {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.jb-kanban__count {
    background: var(--jb-black);
    color: var(--jb-white);
    border-radius: var(--jb-radius-pill);
    font-size: var(--jb-fs-xs);
    padding: .1rem .5rem;
}
.jb-kanban__col--orange { border-top-color: var(--jb-orange); }
.jb-kanban__col--orange .jb-kanban__col-head i { color: var(--jb-orange); }
.jb-kanban__col--info { border-top-color: var(--jb-info); }
.jb-kanban__col--info .jb-kanban__col-head i { color: var(--jb-info); }
.jb-kanban__col--success { border-top-color: var(--jb-success); }
.jb-kanban__col--success .jb-kanban__col-head i { color: var(--jb-success); }
.jb-kanban__col--warning { border-top-color: var(--jb-warning); }
.jb-kanban__col--warning .jb-kanban__col-head i { color: var(--jb-warning); }
.jb-kanban__col--danger { border-top-color: var(--jb-danger); }
.jb-kanban__col--danger .jb-kanban__col-head i { color: var(--jb-danger); }
.jb-kanban__col--neutral { border-top-color: var(--jb-gray-500); }
.jb-kanban__col--neutral .jb-kanban__col-head i { color: var(--jb-gray-500); }
.jb-kanban__col-body {
    flex: 1;
    overflow-y: auto;
    padding: .75rem;
    display: flex;
    flex-direction: column;
    gap: .625rem;
    min-height: 80px;
}
.jb-kanban__col-body.is-drag-over { background: var(--jb-orange-soft); }
.jb-kanban__card {
    position: relative;
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    box-shadow: var(--jb-shadow-sm);
    cursor: grab;
}
.jb-kanban__card.sortable-ghost { opacity: .4; }
.jb-kanban__card.sortable-drag { cursor: grabbing; }
.jb-kanban__card-link {
    display: block;
    padding: .75rem;
    color: inherit;
}
.jb-kanban__card-link:hover { color: inherit; }
.jb-kanban__card-actions {
    position: absolute;
    top: .375rem;
    right: .375rem;
    z-index: 2;
}
.jb-kanban__card-menu {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--jb-radius-pill);
    background: transparent;
    color: var(--jb-gray-500);
    font-size: var(--jb-fs-xs);
    cursor: pointer;
}
.jb-kanban__card-menu:hover,
.jb-kanban__card-menu[aria-expanded="true"] {
    background: var(--jb-gray-100);
    color: var(--jb-black);
}
.jb-kanban__card-head {
    display: flex;
    align-items: center;
    gap: .5rem;
    /* Place laissée au menu d'actions, qui flotte au-dessus. */
    padding-right: 1.5rem;
}
.jb-kanban__avatar {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jb-orange-soft);
    color: var(--jb-orange);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
}
.jb-kanban__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-kanban__identity {
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.jb-kanban__name {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.jb-kanban__offer {
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.jb-nav-link.is-active {
    color: var(--jb-orange);
    font-weight: 600;
}
.jb-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3rem 1.5rem;
    border: 1px dashed var(--jb-gray-300);
    border-radius: var(--jb-radius-md);
    background: var(--jb-gray-50);
}
.jb-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    color: var(--jb-gray-400);
    font-size: 1.375rem;
}
.jb-empty__title {
    margin: 0 0 .375rem;
    font-size: var(--jb-fs-lg);
}
.jb-empty__text {
    max-width: 34rem;
    margin: 0 0 1.25rem;
    color: var(--jb-gray-600);
}
.jb-text-muted { color: var(--jb-gray-500); }
.jb-text-orange { color: var(--jb-orange); }
.jb-text-sm { font-size: var(--jb-fs-sm); }
.jb-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@keyframes jb-spin {
    to { transform: rotate(360deg); }
}
.jb-job-list {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    margin-top: 1.75rem;
}
@media screen and (max-width: 768px) {
        .jb-job-card .jb-job-card__actions .jb-btn {
            gap: .5rem;
            padding: .45rem 1rem;
            font-size: var(--jb-fs-sm);
        }
}
.jb-job-filters .ms-control {
    min-height: 44px;
}
.dropdown-menu.jb-job-filters__panel {
    position: absolute;
    top: calc(100% + .5rem);
    left: auto;
    right: 0;
    width: 24rem;
    max-width: calc(100vw - 2rem);
    max-height: 75vh;
    overflow-y: auto;
    padding: 1.25rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    box-shadow: var(--jb-shadow-lg);
}
@media (max-width: 575.98px) {
        .dropdown-menu.jb-job-filters__panel {
            position: fixed;
            left: 1rem;
            right: 1rem;
            top: 335px;
            bottom: 1rem;
            width: auto;
            max-width: none;
            max-height: 70vh;
        }
}
.ms-theme-jobivoire {
    --ms-color: var(--jb-orange);
    --ms-color-hover: var(--jb-orange-dark);
    --ms-color-soft: var(--jb-orange-soft);
    --ms-color-soft-2: #ffe4cc;
    --ms-color-ring: rgba(254, 103, 3, .16);
    --ms-radius: var(--jb-radius-sm);
    --ms-radius-sm: 6px;
}
.jb-quick-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    gap: .75rem;
    margin-top: 1.25rem;
}
@media (max-width: 575.98px) {
        .jb-quick-facts {
            grid-template-columns: 1fr;
        }
}
.jb-fact-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
    padding: .875rem 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-gray-50);
}
.jb-fact-card__label,
.jb-fact-card__value {
    min-width: 0;
    overflow-wrap: break-word;
}
.jb-fact-card--accent {
    border-color: rgba(254, 103, 3, .25);
    background: var(--jb-orange-soft);
}
.jb-fact-card__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--jb-white);
    color: var(--jb-gray-600);
}
.jb-fact-card--accent .jb-fact-card__icon {
    color: var(--jb-orange-dark);
}
.jb-fact-card__icon svg {
    width: 17px;
    height: 17px;
}
.jb-fact-card__label {
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-fact-card__value {
    margin: .0625rem 0 0;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-fact-card--accent .jb-fact-card__value {
    color: var(--jb-orange-dark);
}
.jb-tab.is-active {
    border-bottom-color: var(--jb-orange);
    color: var(--jb-orange);
}
.jb-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-bottom: 1.5rem;
}
.jb-subtab {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .4375rem .875rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-pill);
    background: var(--jb-white);
    color: var(--jb-gray-700);
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    box-shadow: var(--jb-shadow-sm);
}
.jb-subtab:hover {
    border-color: var(--jb-gray-300);
    color: var(--jb-black);
}
.jb-subtab.is-active {
    border-color: var(--jb-black);
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-subtab__count {
    padding: 0 .375rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-gray-100);
    color: var(--jb-gray-700);
    font-size: var(--jb-fs-xs);
}
.jb-subtab.is-active .jb-subtab__count {
    background: rgba(255, 255, 255, .18);
    color: var(--jb-white);
}
.jb-track-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1.125rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
}
.jb-track-card__main {
    min-width: 0;
}
.jb-track-card__title {
    margin: .5rem 0;
    font-size: var(--jb-fs-lg);
}
.jb-track-card__title a {
    color: var(--jb-black);
}
.jb-track-card__title a:hover {
    color: var(--jb-orange);
}
.jb-track-card__aside {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .5rem;
}
@media (max-width: 768px) {
        .jb-track-card {
            flex-direction: column;
            padding: .95rem
        }
        .jb-track-card__aside {
            width: 100%;
            justify-content: flex-start;
            padding-top: .75rem;
            border-top: 1px solid var(--jb-gray-200);
        }
}
.jb-track-card--with-avatar { align-items: center; }
.jb-track-card__avatar {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: var(--jb-fs-sm);
    overflow: hidden;
}
.jb-track-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-track-card__body { display: flex; gap: 1rem; align-items: center; min-width: 0; }
.jb-track-card__body .jb-track-card__main { flex: 1 1 auto; }
.jb-track-card__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem .875rem;
    margin-top: .5rem;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-track-card__stat {
    display: inline-flex;
    align-items: center;
    gap: .3125rem;
}
.jb-track-card__stat i { width: 13px; text-align: center; color: var(--jb-gray-400); }
.jb-track-card__stat.is-highlight {
    color: var(--jb-orange-dark);
    font-weight: 700;
}
.jb-track-card__stat.is-highlight i { color: var(--jb-orange); }
.jb-panel {
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-300);
    border-radius: var(--jb-radius-md);
    margin-bottom: 1.5rem;
}
.jb-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.125rem 1.25rem;
    border-bottom: 1px solid var(--jb-gray-100);
}
.jb-panel__title {
    margin: 0 0 .2rem;
    font-size: var(--jb-fs-lg);
    font-weight: 700;
}
.jb-panel__subtitle {
    margin: 0;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-panel__body {
    padding: 1.25rem;
}
.jb-specialty-picker__group.is-disabled .jb-chip label {
    opacity: .45;
    cursor: not-allowed;
}
.jb-alert {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .65rem .9rem;
    border-radius: var(--jb-radius-md);
    font-size: var(--jb-fs-sm);
    font-weight: 600;
}
.jb-alert svg, .jb-alert i {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}
.jb-alert--warning {
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
}
.jb-list-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--jb-gray-100);
}
.jb-list-item:last-child { border-bottom: none; }
.jb-list-item__title {
    margin: 0 0 .15rem;
    font-weight: 700;
    font-size: var(--jb-fs-base);
}
.jb-list-item__meta {
    margin: 0;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-list-item__main { flex: 1 1 auto; min-width: 0; }
.jb-list-item__head .jb-list-item__title,
.jb-list-item__head .jb-list-item__meta { margin: 0; }
.jb-file-drop {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-gray-50);
}
.jb-file-drop__icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
}
.jb-file-drop__body { flex: 1 1 auto; min-width: 0; }
.jb-file-drop__name {
    margin: 0;
    font-weight: 600;
    font-size: var(--jb-fs-sm);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-file-drop__hint {
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-list-item .dropdown-menu,
.jb-track-card .dropdown-menu {
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    box-shadow: var(--jb-shadow);
    padding: .4rem;
}
.jb-list-item .dropdown-item,
.jb-track-card .dropdown-item {
    border-radius: var(--jb-radius-sm);
    font-size: var(--jb-fs-sm);
    padding: .5rem .6rem;
}
.jb-list-item .dropdown-item:hover,
.jb-track-card .dropdown-item:hover {
    background: var(--jb-gray-100);
}
.fixed-tab-item {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 9px 16px;
    border-radius: 30px;
    text-decoration: none;
    color: #5f6368;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s;
}
.fixed-tab-item.active {
    background: var(--jb-black);
    color: white;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 0px 1px;
}
@media screen and (max-width: 885px) {
        .fixed-tab-item {
            flex: 1;
            gap: 4px;
            padding: 7px 10px;
            font-size: 12px;
        }
        .fixed-tab-item.active .label {
            display: none;
        }
}
.jb-mega-menu__link:hover .jb-mega-menu__icon,
.jb-mega-menu__link.is-active .jb-mega-menu__icon {
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
}
.jb-mega-menu__link.is-active .jb-mega-menu__title {
    color: var(--jb-orange-dark);
}
.jb-account-choice__actions .jb-btn {
    flex: 1 1 0;
}
::-webkit-scrollbar {
  width: thin;   
  height: thin;  
}
.form-control.filter-amount-input{
    background-color: #f5f5f5; border: var(--bs-border-width) solid #e9e9e9;
}
.form-control.filter-amount-input:focus{box-shadow: none; border-color: var(--jb-black);}
.breadcrumb-jv .active { color: var(--jb-gray-800); font-weight: 600; }
.form-check-input:checked {
  background-color: var(--jb-success);
  border-color: var(--jb-success);
}.color-inherit{
  color: inherit;
}
.jb-tab.active {
    border-bottom-color: var(--jb-orange);
    color: var(--jb-orange);
}
.jb-steps {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: .875rem;
}
.jb-steps li {
    font-size: var(--jb-fs-sm);
    line-height: 1.55;
    color: var(--jb-gray-700);
}
.jb-steps strong {
    display: block;
    color: var(--jb-black);
}
.jb-folder-list {
    display: grid;
    gap: .5rem;
}
.jb-folder-option {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    padding: .75rem .875rem;
    text-align: left;
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    color: inherit;
    transition: background .15s ease, border-color .15s ease;
}
button.jb-folder-option {
    cursor: pointer;
}
button.jb-folder-option:hover {
    background: var(--jb-gray-50);
    border-color: var(--jb-gray-300);
}
.jb-folder-option.is-in-folder {
    background: var(--jb-orange-soft);
    border-color: var(--jb-orange);
}
.jb-folder-option__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 38px;
    height: 38px;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    color: var(--jb-gray-600);
}
.jb-folder-option.is-in-folder .jb-folder-option__icon {
    background: var(--jb-white);
    color: var(--jb-orange);
}
.jb-folder-option__body {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
}
.jb-folder-option__name {
    display: block;
    font-weight: 600;
    font-size: var(--jb-fs-sm);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-folder-option__count {
    display: block;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-folder-option--demo {
    cursor: default;
}
.jb-folder-option--demo .jb-folder-option__name,
.jb-folder-option--demo .jb-folder-option__count {
    color: var(--jb-gray-500);
}
.jb-folder-option__tag {
    flex: none;
    padding: .125rem .5rem;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    color: var(--jb-gray-600);
    font-size: var(--jb-fs-xs);
    font-weight: 600;
}
.jb-folder-notice {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    padding: .75rem .875rem;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-50);
    border: 1px solid var(--jb-gray-200);
    font-size: var(--jb-fs-sm);
    line-height: 1.5;
}
.jb-folder-notice i {
    margin-top: .2rem;
    color: var(--jb-gray-500);
}
.jb-folder-notice a {
    color: var(--jb-orange);
    text-decoration: underline;
}
.jb-tip {
    position: relative;
    opacity: .55;
    cursor: not-allowed;
}
.jb-tip::after {
    content: attr(data-tip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + .5rem);
    z-index: 20;
    width: max-content;
    max-width: 15rem;
    padding: .5rem .625rem;
    transform: translateX(-50%);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-black);
    color: var(--jb-white);
    font-size: var(--jb-fs-xs);
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
    box-shadow: var(--jb-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transition: opacity .15s ease;
    pointer-events: none;
}
.jb-tip:hover::after,
.jb-tip:focus-visible::after {
    opacity: 1;
    visibility: visible;
}
.jb-folder-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: .875rem;
    height: 100%;
    padding: 1rem 1.125rem;
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-folder-card:hover {
    border-color: var(--jb-gray-300);
    box-shadow: var(--jb-shadow);
}
.jb-folder-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}
.jb-folder-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    color: var(--jb-gray-600);
    font-size: 1.05rem;
}
.jb-folder-card:hover .jb-folder-card__icon {
    background: var(--jb-orange-soft);
    color: var(--jb-orange);
}
.jb-folder-card__body {
    flex: 1 1 auto;
    min-width: 0;
}
.jb-folder-card__name {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-folder-card__count {
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-folder-card__actions {
    position: relative;
    z-index: 2;
    flex: none;
}
.jb-onboarding__progress span.is-done { background: var(--jb-black); }
.jb-onboarding__progress span.is-current { background: var(--jb-orange); }
.jb-auth__step.is-current { background: var(--jb-orange); }
.jb-cv-drop.is-filled {
    border-color: var(--jb-orange);
    background: var(--jb-orange-soft);
}
.jb-cv-drop.is-filled .jb-cv-drop__icon {
    background: var(--jb-orange);
    color: var(--jb-white);
}
.jb-bulk-bar {
    position: sticky;
    bottom: 1rem;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 1.5rem 0;
    padding: .85rem 1.25rem;
    border-radius: var(--jb-radius);
    background: var(--jb-black);
    color: var(--jb-white);
    box-shadow: var(--jb-shadow-lg);
}
.jb-bulk-bar__count {
    font-size: var(--jb-fs-sm);
    font-weight: 600;
}
.jb-bulk-bar__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.jb-bulk-bar .jb-btn--outline {
    background: transparent;
    border-color: rgba(255, 255, 255, .3);
    color: var(--jb-white);
}
.jb-bulk-bar .jb-btn--outline:hover {
    border-color: var(--jb-white);
    color: var(--jb-white);
}
.jb-square-drop {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 168px;
    height: 168px;
    padding: .75rem;
    text-align: center;
    background: var(--jb-gray-50);
    border: 1px dashed var(--jb-gray-300);
    border-radius: var(--jb-radius-md);
    cursor: pointer;
    overflow: hidden;
    transition: border-color .15s ease, background-color .15s ease;
}
.jb-square-drop:hover,
.jb-square-drop.is-dragover {
    border-color: var(--jb-orange);
    background: var(--jb-orange-soft);
}
.jb-square-drop.is-filled {
    border-style: solid;
    border-color: var(--jb-gray-200);
    background: var(--jb-white);
    padding: 0;
}
.jb-square-drop__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    color: var(--jb-gray-600);
    font-size: var(--jb-fs-xs);
    line-height: 1.35;
}
.jb-square-drop__placeholder i,
.jb-square-drop__placeholder svg {
    width: 28px;
    height: 28px;
    color: var(--jb-orange);
}
.jb-square-drop.is-filled .jb-square-drop__placeholder {
    display: none;
}
.jb-square-drop__image {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-square-drop.is-filled .jb-square-drop__image {
    display: block;
}
.jb-square-drop__overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: .375rem .5rem;
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    color: var(--jb-white);
    background: rgba(11, 10, 10, .72);
    opacity: 0;
    transition: opacity .15s ease;
}
.jb-square-drop.is-filled:hover .jb-square-drop__overlay {
    opacity: 1;
}
.jb-square-drop.is-busy {
    pointer-events: none;
    opacity: .6;
}
.jb-square-drop__spinner {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .75);
    color: var(--jb-orange);
}
.jb-square-drop.is-busy .jb-square-drop__spinner {
    display: flex;
}
.jb-form-section {
    padding: 1.25rem 0;
    border-top: 1px solid var(--jb-gray-200);
}
.jb-form-section:first-child {
    padding-top: 0;
    border-top: 0;
}
.jb-form-section__head {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    margin-bottom: 1rem;
}
.jb-form-section__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--jb-radius);
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
}
.jb-form-section__title {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-form-section__hint {
    margin: .125rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-completion {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
    padding: .875rem 1.125rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
}
.jb-completion__bar {
    flex: 1 1 180px;
    height: 6px;
    border-radius: 99px;
    background: var(--jb-gray-200);
    overflow: hidden;
}
.jb-completion__fill {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: var(--jb-orange);
}
.jb-completion__value {
    font-weight: 700;
    color: var(--jb-black);
}
.jb-completion__missing {
    flex: 1 1 100%;
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
label.jb-folder-option {
    cursor: pointer;
    margin-bottom: .5rem;
}
label.jb-folder-option:hover {
    background: var(--jb-gray-50);
    border-color: var(--jb-gray-300);
}
.jb-folder-option.is-checked {
    background: var(--jb-orange-soft);
    border-color: var(--jb-orange);
}
.jb-folder-option.is-checked .jb-folder-option__icon {
    background: var(--jb-white);
    color: var(--jb-orange);
}
.jb-color-picker {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.jb-color-swatch {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}
.jb-color-swatch input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.jb-color-swatch__dot {
    display: block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid var(--jb-white);
    box-shadow: 0 0 0 1px var(--jb-gray-300);
}
.jb-color-swatch input:checked + .jb-color-swatch__dot {
    box-shadow: 0 0 0 2px var(--jb-black);
}
.jb-color-swatch input:focus-visible + .jb-color-swatch__dot {
    outline: 2px solid var(--jb-orange);
    outline-offset: 2px;
}
.jb-folder-card__desc {
    margin: .25rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.jb-folder-pick {
    display: flex;
    align-items: center;
    flex: none;
    padding-right: .25rem;
    cursor: pointer;
}
.jb-folder-pick input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--jb-orange);
    cursor: pointer;
}
.jb-checkout__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .875rem 1.125rem;
    margin-bottom: 1.25rem;
    border-radius: var(--jb-radius-md);
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-checkout__total-label {
    font-size: var(--jb-fs-sm);
    opacity: .8;
}
.jb-checkout__total-value {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--jb-orange);
}
.jb-checkout__legend {
    float: none;
    width: auto;
    margin-bottom: .5rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--jb-gray-600);
}
.jb-pay-methods {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
}
.jb-pay-method {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .375rem;
    padding: .75rem .375rem 1.5rem;
    text-align: center;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.jb-pay-method:hover {
    border-color: var(--jb-gray-400);
}
.jb-pay-method.is-selected {
    border-color: var(--jb-orange);
    background: var(--jb-orange-soft);
}
.jb-pay-method input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.jb-pay-method__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: .375rem;
    border-radius: 50%;
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    overflow: hidden;
}
.jb-pay-method__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.jb-pay-method__name {
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    line-height: 1.2;
    color: var(--jb-black);
}
.jb-pay-method__radio {
    position: absolute;
    bottom: .5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1.5px solid var(--jb-gray-300);
    background: var(--jb-white);
}
.jb-pay-method.is-selected .jb-pay-method__radio {
    border-color: var(--jb-orange);
    box-shadow: inset 0 0 0 3px var(--jb-orange);
}
.jb-pay-method input:focus-visible ~ .jb-pay-method__radio {
    outline: 2px solid var(--jb-orange);
    outline-offset: 2px;
}
.jb-checkout__phone.is-disabled {
    opacity: .5;
    pointer-events: none;
}
.jb-checkout__summary {
    margin-top: 1rem;
    padding: .75rem .875rem;
    border-radius: var(--jb-radius-md);
    background: var(--jb-gray-50);
    border: 1px solid var(--jb-gray-200);
}
.jb-checkout__summary-toggle {
    padding: 0;
    border: 0;
    background: none;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-700);
    cursor: pointer;
}
.jb-checkout__summary-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .375rem 1rem;
    margin: .75rem 0 0;
    font-size: var(--jb-fs-sm);
}
.jb-checkout__summary-list dt {
    font-weight: 500;
    color: var(--jb-gray-600);
}
.jb-checkout__summary-list dd {
    margin: 0;
    text-align: right;
    font-weight: 600;
    color: var(--jb-black);
}
.js-checkout-cancel {
    text-decoration: none;
    font-size: var(--jb-fs-xs);
}
.jb-mg-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--jb-gray-200);
}
.jb-mg-head__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin: 0 0 .25rem;
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--jb-orange);
}
.jb-mg-head__eyebrow svg {
    width: 14px;
    height: 14px;
}
.jb-mg-head__title {
    margin: 0;
    font-size: var(--jb-fs-2xl);
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--jb-black);
}
.jb-mg-head__subtitle {
    margin: .25rem 0 0;
    font-size: var(--jb-fs-sm);
    color: var(--color-text-muted);
    max-width: 62ch;
}
.jb-mg-tabs {
    display: flex;
    gap: .25rem;
    margin-bottom: 1rem;
    padding-bottom: 2px;
    overflow-x: auto;
    scrollbar-width: none;
    border-bottom: 1px solid var(--jb-gray-200);
}
.jb-mg-tabs::-webkit-scrollbar {
    display: none;
}
.jb-mg-tab {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
    padding: .625rem .875rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-600);
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s ease, border-color .15s ease;
}
.jb-mg-tab:hover {
    color: var(--jb-black);
}
.jb-mg-tab.is-active {
    color: var(--jb-black);
    border-bottom-color: var(--jb-orange);
}
.jb-mg-tab__count {
    min-width: 20px;
    padding: 0 .375rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-gray-100);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    color: var(--jb-gray-700);
}
.jb-mg-tab.is-active .jb-mg-tab__count {
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-mg-tab__count--alert,
.jb-mg-tab.is-active .jb-mg-tab__count--alert {
    background: var(--jb-orange);
    color: var(--jb-white);
}
.jb-mg-note {
    display: flex;
    gap: .75rem;
    padding: .875rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-gray-50);
}
.jb-mg-note__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    color: var(--jb-gray-700);
}
.jb-mg-note__icon svg {
    width: 18px;
    height: 18px;
}
.jb-mg-note__title {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-mg-note__text {
    margin: .125rem 0 0;
    font-size: var(--jb-fs-sm);
    color: var(--color-text-muted);
}
.jb-mg-note--warning {
    border-color: #f4dcb8;
    background: var(--jb-warning-soft);
}
.jb-mg-note--warning .jb-mg-note__icon {
    border-color: #f4dcb8;
    color: var(--jb-warning);
}
.jb-mg-note--danger {
    border-color: #f6cfcf;
    background: var(--jb-danger-soft);
}
.jb-mg-note--danger .jb-mg-note__icon {
    border-color: #f6cfcf;
    color: var(--jb-danger);
}
.jb-mg-note--success {
    border-color: #cfe9d9;
    background: var(--jb-success-soft);
}
.jb-mg-note--success .jb-mg-note__icon {
    border-color: #cfe9d9;
    color: var(--jb-success);
}
.jb-mg-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .625rem;
    padding: .75rem;
    margin-bottom: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
}
.jb-mg-toolbar__field {
    flex: 1 1 200px;
    min-width: 0;
}
.jb-mg-toolbar__label {
    display: block;
    margin-bottom: .25rem;
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    color: var(--jb-gray-600);
}
.jb-mg-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.jb-mg-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .875rem;
    padding: .875rem 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-mg-item:hover {
    border-color: var(--jb-gray-300);
    box-shadow: var(--jb-shadow-sm);
}
.jb-mg-item__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    border: 1px solid var(--jb-gray-200);
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-gray-700);
    overflow: hidden;
}
.jb-mg-item__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-mg-item__main {
    flex: 1 1 220px;
    min-width: 0;
}
.jb-mg-item__name {
    display: block;
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.jb-mg-item__name:hover {
    color: var(--jb-orange);
}
.jb-mg-item__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem .625rem;
    margin: .25rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
}
.jb-mg-item__actions {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin-left: auto;
}
.jb-mg-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .125rem .5rem;
    border-radius: var(--jb-radius-pill);
    border: 1px solid var(--jb-gray-200);
    background: var(--jb-gray-50);
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    color: var(--jb-gray-700);
    white-space: nowrap;
}
.jb-mg-chip svg {
    width: 12px;
    height: 12px;
}
.jb-mg-chip--company {
    border-color: #d8e2fb;
    background: var(--jb-info-soft);
    color: #1d4ed8;
}
.jb-mg-chip--talent {
    border-color: var(--jb-gray-300);
    background: var(--jb-white);
    color: var(--jb-gray-800);
}
.jb-mg-chip--late {
    border-color: #f4dcb8;
    background: var(--jb-warning-soft);
    color: #a25c06;
}
.jb-mg-chip--success {
    border-color: #cfe9d9;
    background: var(--jb-success-soft);
    color: #15803d;
}
.jb-mg-chip--danger {
    border-color: #f6cfcf;
    background: var(--jb-danger-soft);
    color: #b91c1c;
}
.jb-mg-chip--warning {
    border-color: #f4dcb8;
    background: var(--jb-warning-soft);
    color: #a25c06;
}
.jb-mg-chip--info {
    border-color: #d8e2fb;
    background: var(--jb-info-soft);
    color: #1d4ed8;
}
.jb-mg-chip--neutral {
    border-color: var(--jb-gray-200);
    background: var(--jb-gray-100);
    color: var(--jb-gray-700);
}
.jb-mg-empty {
    padding: 2.5rem 1.25rem;
    border: 1px dashed var(--jb-gray-300);
    border-radius: var(--jb-radius-md);
    background: var(--jb-gray-50);
    text-align: center;
}
.jb-mg-empty__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: .75rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-white);
    border: 1px solid var(--jb-gray-200);
    color: var(--jb-gray-500);
}
.jb-mg-empty__icon svg {
    width: 22px;
    height: 22px;
}
.jb-mg-empty__text {
    margin: 0;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-700);
}
.jb-mg-panel {
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
}
.jb-mg-panel + .jb-mg-panel {
    margin-top: 1rem;
}
.jb-mg-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .875rem 1.125rem;
    border-bottom: 1px solid var(--jb-gray-200);
    /* background: var(--jb-gray-50); */
}
.jb-mg-panel__title {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-mg-panel__body {
    padding: 1.125rem;
}
.jb-mg-kv {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .5rem 1rem;
    margin: 0;
    font-size: var(--jb-fs-sm);
}
.jb-mg-kv dt {
    font-weight: 500;
    color: var(--jb-gray-600);
}
.jb-mg-kv dd {
    margin: 0;
    text-align: right;
    font-weight: 600;
    color: var(--jb-black);
    word-break: break-word;
}
.jb-mg-docs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: .75rem;
}
.jb-mg-doc {
    display: block;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    text-decoration: none;
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-mg-doc:hover {
    border-color: var(--jb-orange);
    box-shadow: var(--jb-shadow-sm);
}
.jb-mg-doc__frame {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
    background: var(--jb-gray-100);
    overflow: hidden;
}
.jb-mg-doc__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-mg-doc__frame svg {
    width: 30px;
    height: 30px;
    color: var(--jb-gray-500);
}
.jb-mg-doc__foot {
    padding: .5rem .75rem;
    border-top: 1px solid var(--jb-gray-200);
}
.jb-mg-doc__label {
    margin: 0;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-mg-doc__hint {
    margin: .125rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
}
.jb-mg-check {
    margin: 0;
    padding: 0;
    list-style: none;
}
.jb-mg-check li {
    position: relative;
    padding-left: 1.5rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-700);
}
.jb-mg-check li + li {
    margin-top: .5rem;
}
.jb-mg-check li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .375rem;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    border: 1.5px solid var(--jb-orange);
}
.jb-mg-decision {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: .875rem 1.125rem;
    margin-top: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    box-shadow: var(--jb-shadow-lg);
}
.jb-mg-decision__text {
    margin: 0;
    font-size: var(--jb-fs-sm);
    color: var(--color-text-muted);
}
.jb-mg-decision__actions {
    display: flex;
    gap: .5rem;
    margin-left: auto;
}
@media (max-width: 575.98px) {
        .jb-mg-item__actions {
            width: 100%;
            margin-left: 0;
        }
        .jb-mg-decision__actions {
            width: 100%;
            margin-left: 0;
        }
        .jb-mg-decision__actions .btn {
            flex: 1 1 0;
        }
}
.jb-filters-modal .modal-content {
    border: 0;
    border-radius: var(--jb-radius-md);
}
.jb-filters-modal .modal-header {
    border-bottom: 1px solid var(--jb-gray-200);
}
.jb-filters-modal .modal-body {
    padding: 0;
}
@media (max-width: 575.98px) {
        .jb-filters-modal .modal-content {
            border-radius: 0;
        }
}
.jb-folder-search {
    position: relative;
    margin-bottom: .625rem;
}
.jb-folder-search svg {
    position: absolute;
    top: 50%;
    left: .75rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    color: var(--jb-gray-500);
    pointer-events: none;
}
.jb-folder-search input {
    width: 100%;
    padding: .5rem .75rem .5rem 2.25rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-50);
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-800);
}
.jb-folder-search input:focus {
    outline: none;
    background: var(--jb-white);
    border-color: var(--jb-orange);
}
.jb-folder-list.is-scrollable {
    max-height: 260px;
    overflow-y: auto;
    padding-right: .25rem;
}
.jb-mg-quota {
    padding: .75rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-50);
}
.jb-mg-quota .form-text {
    margin-top: .25rem;
    font-size: var(--jb-fs-xs);
}
.jb-mg-flag {
    padding: .5rem .625rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-white);
    font-size: var(--jb-fs-sm);
}
.jb-mg-flag .form-check-label {
    cursor: pointer;
}
.jb-stepper--sm input {
    font-size: var(--jb-fs-sm);
}
.jb-plan-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    overflow: hidden;
}
.jb-plan-card.is-featured {
    border-color: var(--jb-black);
    box-shadow: var(--jb-shadow);
}
.jb-plan-card.is-current {
    border-color: var(--jb-orange);
}
.jb-plan-card__head {
    padding: 1.25rem;
    background: var(--jb-gray-50);
    border-bottom: 1px solid var(--jb-gray-200);
}
.jb-plan-card.is-featured .jb-plan-card__head {
    background: var(--jb-black);
    border-bottom-color: var(--jb-black);
    color: var(--jb-white);
}
.jb-plan-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    min-height: 22px;
    margin-bottom: .5rem;
}
.jb-plan-card__tag {
    display: inline-flex;
    align-items: center;
    padding: .125rem .625rem;
    border-radius: var(--jb-radius-pill);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.jb-plan-card__tag--featured {
    background: var(--jb-orange);
    color: var(--jb-white);
}
.jb-plan-card__tag--current {
    background: var(--jb-white);
    color: var(--jb-black);
    border: 1px solid var(--jb-gray-300);
}
.jb-plan-card.is-featured .jb-plan-card__tag--current {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .3);
    color: var(--jb-white);
}
.jb-plan-card__name {
    margin: 0;
    font-size: var(--jb-fs-lg);
    font-weight: 700;
}
.jb-plan-card__price {
    margin: .375rem 0 0;
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.02em;
}
.jb-plan-card.is-featured .jb-plan-card__price {
    color: var(--jb-orange);
}
.jb-plan-card__period {
    font-size: var(--jb-fs-sm);
    font-weight: 500;
    color: var(--color-text-muted);
}
.jb-plan-card.is-featured .jb-plan-card__period {
    color: rgba(255, 255, 255, .65);
}
.jb-plan-card__compare {
    margin: .25rem 0 0;
    font-size: var(--jb-fs-sm);
    color: var(--color-text-muted);
}
.jb-plan-card__save {
    margin-left: .375rem;
    font-weight: 700;
    color: var(--jb-orange);
}
.jb-plan-card__pitch {
    margin: .625rem 0 0;
    font-size: var(--jb-fs-sm);
    color: var(--color-text-muted);
}
.jb-plan-card.is-featured .jb-plan-card__pitch {
    color: rgba(255, 255, 255, .75);
}
.jb-plan-card__body {
    flex: 1 1 auto;
    padding: 1.125rem 1.25rem;
}
.jb-plan-card__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin-bottom: 1rem;
}
.jb-plan-card__stat {
    padding: .625rem .375rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-50);
    text-align: center;
}
.jb-plan-card__stat.is-off {
    opacity: .55;
}
.jb-plan-card__stat-value {
    display: block;
    font-size: var(--jb-fs-base);
    font-weight: 800;
    line-height: 1.2;
    color: var(--jb-black);
}
.jb-plan-card__stat-label {
    display: block;
    margin-top: .125rem;
    font-size: var(--jb-fs-xs);
    line-height: 1.25;
    color: var(--color-text-muted);
}
.jb-plan-card__inherits {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: 0 0 .5rem;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-plan-card__inherits svg {
    width: 15px;
    height: 15px;
    color: var(--jb-orange);
}
.jb-plan-card__features {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--jb-fs-sm);
}
.jb-plan-card__features li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .1875rem 0;
    color: var(--jb-gray-800);
}
.jb-plan-card__features svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: .125rem;
    color: var(--jb-success);
}
.jb-plan-card__features li.is-new {
    font-weight: 700;
    color: var(--jb-black);
}
.jb-plan-card__features li.is-new svg {
    color: var(--jb-orange);
}
.jb-plan-card__features li.is-off {
    color: var(--jb-gray-400);
}
.jb-plan-card__features li.is-off svg {
    color: var(--jb-gray-400);
}
.jb-plan-card__cta {
    margin: 0 1.25rem 1.25rem;
    font-weight: 700;
}
.jb-section-lead {
    padding-left: .875rem;
    border-left: 3px solid var(--jb-orange);
}
#layoutSidenav_content {
    background: var(--jb-gray-50);
}
#layoutSidenav_content main {
    min-height: calc(100vh - var(--jb-header-height) - 60px);
}
#layoutSidenav_content h1 {
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--jb-black);
}
#layoutSidenav_content h2,
#layoutSidenav_content h3,
#layoutSidenav_content h4,
#layoutSidenav_content h5,
#layoutSidenav_content h6 {
    font-weight: 700;
    color: var(--jb-black);
}
#layoutSidenav_content .card {
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    box-shadow: none;
}
#layoutSidenav_content .card > .card-header,
#layoutSidenav_content .card > .card-header.bg-white {
    padding: .875rem 1.125rem;
    border-bottom: 1px solid var(--jb-gray-200);
    background: var(--jb-gray-50);
    font-weight: 700;
    color: var(--jb-black);
}
#layoutSidenav_content .table > thead > tr > th {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--jb-gray-200);
    background: var(--jb-gray-50);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--jb-gray-600);
    white-space: nowrap;
}
#layoutSidenav_content .table > tbody > tr > td {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--jb-gray-100);
    vertical-align: middle;
}
#layoutSidenav_content .table > tbody > tr:last-child > td {
    border-bottom: 0;
}
#layoutSidenav_content .table > tbody > tr:hover {
    background: var(--jb-gray-50);
}
#layoutSidenav_content .btn,
.sb-topnav .btn {
    border-radius: var(--jb-radius-sm);
    font-weight: 600;
}
#layoutSidenav_content .btn-primary {
    background: var(--jb-orange);
    border-color: var(--jb-orange);
    color: var(--jb-white);
}
#layoutSidenav_content .btn-primary:hover,
#layoutSidenav_content .btn-primary:focus {
    background: var(--jb-orange-dark);
    border-color: var(--jb-orange-dark);
}
#layoutSidenav_content .btn-dark {
    background: var(--jb-black);
    border-color: var(--jb-black);
}
#layoutSidenav_content .btn-outline-dark {
    border-color: var(--jb-gray-300);
    color: var(--jb-gray-800);
}
#layoutSidenav_content .btn-outline-dark:hover {
    background: var(--jb-black);
    border-color: var(--jb-black);
    color: var(--jb-white);
}
#layoutSidenav_content .form-control,
#layoutSidenav_content .form-select {
    border-color: var(--jb-gray-300);
    border-radius: var(--jb-radius-sm);
}
#layoutSidenav_content .form-control:focus,
#layoutSidenav_content .form-select:focus {
    border-color: var(--jb-orange);
    box-shadow: 0 0 0 3px rgba(254, 103, 3, .12);
}
#layoutSidenav_content .form-label {
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-700);
}
#layoutSidenav_content .form-check-input:checked {
    background-color: var(--jb-orange);
    border-color: var(--jb-orange);
}
#layoutSidenav_content .nav-tabs {
    border-bottom: 1px solid var(--jb-gray-200);
}
#layoutSidenav_content .nav-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    font-weight: 600;
    color: var(--jb-gray-600);
}
#layoutSidenav_content .nav-tabs .nav-link:hover {
    color: var(--jb-black);
}
#layoutSidenav_content .nav-tabs .nav-link.active {
    background: none;
    color: var(--jb-black);
    border-bottom-color: var(--jb-orange);
}
#layoutSidenav_content .badge {
    border-radius: var(--jb-radius-sm);
    font-weight: 700;
    letter-spacing: .01em;
}
#layoutSidenav_content .modal-content,
.sb-topnav .dropdown-menu {
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    box-shadow: var(--jb-shadow-lg);
}
#layoutSidenav_content .modal-header,
#layoutSidenav_content .modal-footer {
    border-color: var(--jb-gray-200);
}
#layoutSidenav_content .page-link {
    border-color: var(--jb-gray-200);
    color: var(--jb-gray-700);
}
#layoutSidenav_content .page-item.active .page-link {
    background: var(--jb-black);
    border-color: var(--jb-black);
    color: var(--jb-white);
}
#layoutSidenav_content .btn svg,
.sb-topnav .btn svg {
    width: 16px;
    height: 16px;
    vertical-align: -3px;
    margin-right: .25rem;
}
#layoutSidenav_content .btn-sm svg {
    width: 14px;
    height: 14px;
}
.jb-plan-option {
    padding: .75rem .875rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-sm);
    background: var(--jb-white);
}
.jb-plan-option.is-locked {
    background: var(--jb-gray-50);
    border-style: dashed;
}
.jb-plan-option.is-locked .form-check-label {
    color: var(--jb-gray-600);
}
.jb-plan-option .form-check-label svg {
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    color: var(--jb-orange);
}
.jb-plan-option__help {
    margin: .5rem 0 0;
    font-size: var(--jb-fs-xs);
    line-height: 1.45;
    color: var(--color-text-muted);
}
.jb-plan-option__help a {
    font-weight: 600;
    color: var(--jb-orange);
}
.jb-role-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.125rem 1.25rem 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-role-card:hover {
    border-color: var(--jb-gray-300);
    box-shadow: 0 6px 18px rgba(11, 10, 10, .06);
}
.jb-role-card.is-off {
    background: var(--jb-gray-100);
    border-style: dashed;
}
.jb-role-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .75rem;
}
.jb-role-card__name {
    margin: 0 0 .25rem;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--jb-black);
}
.jb-role-card__desc {
    margin: 0 0 .875rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-role-card__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    margin-top: auto;
    padding-top: .875rem;
    border-top: 1px solid var(--jb-gray-200);
}
.jb-role-card__stat {
    display: flex;
    flex-direction: column;
    gap: .125rem;
}
.jb-role-card__stat-value {
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1;
    color: var(--jb-black);
}
.jb-role-card__stat:last-child .jb-role-card__stat-value {
    color: var(--jb-orange);
}
.jb-role-card__stat-label {
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-icon-btn--float {
    width: 34px;
    height: 34px;
    font-size: var(--jb-fs-sm);
}
.jb-credit-intro {
    padding: 1.25rem 1.5rem;
    border-radius: var(--jb-radius-md);
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-credit-intro__eyebrow {
    margin: 0 0 .375rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--jb-orange);
}
.jb-credit-intro__title {
    margin: 0 0 .5rem;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
}
.jb-credit-intro__text {
    margin: 0;
    max-width: 78ch;
    font-size: var(--jb-fs-sm);
    color: rgba(255, 255, 255, .78);
}
.jb-credit-row {
    margin-top: 1.5rem;
}
.jb-credit-row__head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: .875rem;
}
.jb-credit-row__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--jb-radius);
    background: var(--jb-gray-100);
    color: var(--jb-black);
}
.jb-credit-row__title {
    margin: 0 0 .125rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--jb-black);
}
.jb-credit-row__lead {
    margin: 0;
    max-width: 80ch;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-credit-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.125rem 1.25rem 1.25rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.jb-credit-card:hover {
    border-color: var(--jb-black);
    box-shadow: 0 10px 24px rgba(11, 10, 10, .08);
    transform: translateY(-2px);
}
.jb-credit-card__name {
    margin: 0 0 .5rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--jb-gray-600);
}
.jb-credit-card__quantity {
    display: flex;
    align-items: baseline;
    gap: .375rem;
    margin: 0 0 .25rem;
}
.jb-credit-card__value {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
    color: var(--jb-orange);
}
.jb-credit-card__unit {
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-black);
}
.jb-credit-card__price {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    margin: 0 0 .875rem;
    padding-bottom: .875rem;
    border-bottom: 1px dashed var(--jb-gray-200);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--jb-black);
}
.jb-credit-card__compare {
    font-size: var(--jb-fs-sm);
    font-weight: 500;
    color: var(--jb-gray-500, #9ca3af);
}
.jb-credit-card__facts {
    list-style: none;
    margin: 0 0 .875rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .375rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-700);
}
.jb-credit-card__facts li {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.jb-credit-card__facts svg,
.jb-credit-card__facts i {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    color: var(--jb-gray-500, #9ca3af);
}
.jb-credit-card__facts li.is-accent,
.jb-credit-card__facts li.is-accent svg {
    color: var(--jb-orange);
    font-weight: 600;
}
.jb-credit-card__desc {
    margin: 0 0 .875rem;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-credit-card__cta {
    margin-top: auto;
}
.jb-mod-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1rem 1.125rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-mod-card:hover {
    border-color: var(--jb-gray-300);
    box-shadow: 0 6px 18px rgba(11, 10, 10, .06);
}
.jb-mod-card__head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: .75rem;
}
.jb-mod-card__logo {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    overflow: hidden;
    border-radius: var(--jb-radius);
    background: var(--jb-gray-100);
    color: var(--jb-gray-600);
}
.jb-mod-card__logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-mod-card__id {
    flex: 1 1 auto;
    min-width: 0;
}
.jb-mod-card__title {
    margin: 0 0 .125rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--jb-black);
}
.jb-mod-card__org {
    margin: 0;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-mod-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem .875rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-700);
}
.jb-mod-card__facts span {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
}
.jb-mod-card__facts svg {
    width: 14px;
    height: 14px;
    color: var(--jb-gray-500, #9ca3af);
}
.jb-mod-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    padding-top: .875rem;
}
.jb-mod-card__age {
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-square-drop--wide .jb-square-drop__placeholder {
    font-size: var(--jb-fs-sm);
}
.doc-preview__loader.is-done {
    opacity: 0;
    visibility: hidden;
}
.doc-template-card__body .jb-btn {
    margin-top: auto;
}
.doc-swatch.is-active {
    box-shadow: 0 0 0 2px var(--jb-white), 0 0 0 4px var(--jb-black);
}
.doc-zoom .modal-footer {
    justify-content: space-between;
    gap: 12px;
}
.gen-stepper__item.is-done::before,
.gen-stepper__item.is-current::before {
    background-color: var(--jb-orange);
}
.gen-stepper__item.is-done .gen-stepper__dot {
    border-color: var(--jb-orange);
    color: var(--jb-orange);
}
.gen-stepper__item.is-current .gen-stepper__dot {
    border-color: var(--jb-orange);
    background-color: var(--jb-orange);
    color: var(--jb-white);
}
.gen-stepper__item.is-current .gen-stepper__label {
    color: var(--jb-black);
}
.gen-date .form-select {
    min-width: 0;
    flex: 1 1 0;
}
.gen-date .form-select.is-locked,
.form-select.is-locked {
    background-color: var(--jb-gray-100);
    color: var(--color-text-muted);
    pointer-events: none;
}
.gen-photo__text .form-label {
    margin-bottom: 2px;
}
.gen-photo__text .form-text {
    margin-bottom: 10px;
}
.gen-task .form-control {
    flex: 1 1 auto;
}
.stepper-dv {
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background-color: var(--jb-white);
}
.stepper-dv button {
    width: 34px;
    height: 36px;
    flex: 0 0 auto;
    border: 0;
    background-color: var(--jb-gray-50);
    color: var(--jb-gray-700);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
.stepper-dv button:hover {
    background-color: var(--jb-orange);
    color: var(--jb-white);
}
.stepper-dv input {
    width: 52px;
    height: 36px;
    border: 0;
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--jb-black);
}
.stepper-dv input:focus {
    outline: 0;
}
@media (max-width: 991.98px) {
        .gen-work__preview.is-open {
            display: block;
        }
}
.doc-lib-card .jb-btn--block {
    margin-top: auto;
}
.jb-progress {
    height: 8px;
    border-radius: 999px;
    background: var(--jb-gray-100);
    overflow: hidden;
}
.jb-progress__bar {
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--jb-orange);
    transition: width .25s ease;
}
.jb-ai-score {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem .5rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
    white-space: nowrap;
}
.jb-ai-summary {
    margin-top: .5rem;
    padding: .6rem .75rem;
    border-left: 3px solid var(--jb-orange);
    border-radius: 0 8px 8px 0;
    background: var(--jb-gray-50);
    font-size: .82rem;
    color: var(--jb-gray-700);
}
.jb-ai-summary__label {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--jb-gray-600);
    margin-bottom: .15rem;
}
.generator-body .form-label,
.gen-fields .form-label {
    font-weight: 600;
    color: var(--jb-black);
}
.generator-body .form-text,
.gen-fields .form-text {
    color: var(--color-text-muted);
}
@media (max-width: 767.98px) {
        .jb-gen-strip__actions .jb-btn { flex: 1 1 0; }
}
.jb-gen-card .jb-btn { margin-top: auto; }
.jb-gen-card .jb-btn svg { width: 16px; height: 16px; }
.jb-gen-inline .jb-btn { flex-shrink: 0; }
@media (max-width: 575.98px) {
        .jb-gen-inline .jb-btn { width: 100%; }
}
@media (max-width: 400px) {
        .jb-gen-bar__actions .jb-btn { flex: 1 1 0; }
}
.gen-target__search .form-control {
    flex: 1 1 auto;
    min-width: 0;
}
.gen-target__search .jb-btn {
    flex: 0 0 auto;
}
@media (max-width: 575.98px) {
        .gen-target__search .jb-btn {
            width: 100%;
            justify-content: center;
        }
}
.jb-pref__head-icon {
    width: 17px;
    height: 17px;
    color: var(--jb-orange);
    vertical-align: -3px;
    margin-right: .25rem;
}
.jb-pref-list {
    display: flex;
    flex-direction: column;
}
.jb-pref {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    padding: .875rem 0;
    margin: 0;
    cursor: pointer;
    border-top: 1px solid var(--jb-gray-100);
}
.jb-pref:first-child { border-top: 0; padding-top: 0; }
.jb-pref:last-child { padding-bottom: 0; }
.jb-pref__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: var(--jb-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jb-gray-50);
    color: var(--jb-gray-600);
}
.jb-pref__icon i { width: 17px; height: 17px; }
.jb-pref__text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.jb-pref__label {
    font-weight: 600;
    line-height: 1.4;
}
.jb-pref__help {
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
    line-height: 1.5;
}
.jb-pref__switch {
    flex: 0 0 auto;
    padding-left: 2.5em;
    margin-top: .15rem;
}
.jb-pref__switch .form-check-input:checked {
    background-color: var(--jb-orange);
    border-color: var(--jb-orange);
}
.jb-pref__switch .form-check-input:focus {
    border-color: var(--jb-orange);
    box-shadow: 0 0 0 .2rem var(--jb-orange-soft);
}
.jb-pref-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
}
@media (max-width: 575.98px) {
        .jb-pref-actions .jb-btn { width: 100%; }
}
.jb-file-drop--pick .jb-file-drop__name,
.jb-file-drop--pick .jb-file-drop__hint {
    display: block;
}
.jb-contact-row {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    width: 100%;
    padding: 1rem 1.25rem;
    border: 0;
    border-top: 1px solid var(--jb-gray-100);
    background: var(--jb-white);
    text-align: left;
    cursor: pointer;
}
.jb-contact-row:first-child { border-top: 0; }
.jb-contact-row:hover { background: var(--jb-gray-50); }
.jb-contact-row.is-unread {
    box-shadow: inset 3px 0 0 var(--jb-orange);
}
.jb-contact-row.is-unread .jb-contact-row__name,
.jb-contact-row.is-unread .jb-contact-row__subject {
    font-weight: 700;
}
.jb-contact-row__avatar {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jb-orange-soft);
    color: var(--jb-orange);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
}
.jb-contact-row__main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.jb-contact-row__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
}
.jb-contact-row__name {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-contact-row__date {
    flex: 0 0 auto;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-contact-row__subject {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-contact-row__excerpt {
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.jb-contact-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .25rem;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-contact-row__flag {
    padding: 0 .5rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-orange);
    color: var(--jb-white);
    font-weight: 600;
}
.jb-contact-body {
    white-space: pre-line;
    line-height: 1.7;
}
.offcanvas-footer { background: var(--jb-white); }

/* ==========================================================================
   Tableau de bord Recruteur (Chantier V3.18 Lot A)
   --------------------------------------------------------------------------
   Trois familles de composants, propres a l'accueil de l'espace Entreprise :
   les compteurs cliquables, la bande d'abonnement, et les cartes d'outils.
   Elles vivent ici et non dans la vue : styles.css du site public ne sert pas
   le layout manager, et une feuille en dur dans la Blade serait un doublon le
   jour ou l'accueil Talent voudra la meme grille.
   ========================================================================== */

.jb-mg-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.jb-mg-stat {
    position: relative;
    display: block;
    padding: .875rem 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    color: var(--jb-black);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-mg-stat:hover {
    border-color: var(--jb-gray-300);
    box-shadow: var(--jb-shadow);
    color: var(--jb-black);
}
.jb-mg-stat__value {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.02em;
}
.jb-mg-stat__label {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: .25rem 0 0;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-700);
}
.jb-mg-stat__label svg {
    width: 14px;
    height: 14px;
    color: var(--jb-gray-400);
}
.jb-mg-stat:hover .jb-mg-stat__label svg { color: var(--jb-orange); }
.jb-mg-stat__hint {
    margin: .125rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-mg-stat__alert {
    position: absolute;
    top: .625rem;
    right: .625rem;
    min-width: 20px;
    padding: 0 .375rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-orange);
    color: var(--jb-white);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-align: center;
}

/* Repère visuel par module (compteurs neutres, tableau de bord) : une pastille
   de couleur derrière l'icône, pas le texte, pour que l'orange reste réservé
   à la file d'attente (cf. .jb-mg-stat--pending) sans que l'écran ne redevienne
   tout en noir et blanc. */
.jb-mg-stat__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    flex: 0 0 auto;
}
.jb-mg-stat__icon svg {
    width: 14px;
    height: 14px;
}
/* Couleur posée directement sur le svg (et non seulement sur le conteneur) :
   `.jb-mg-stat__label svg` fixe déjà une couleur grise plus haut, et une
   règle de spécificité égale doit gagner sur l'icône pour que la teinte
   s'applique réellement. */
.jb-mg-stat__label .jb-mg-stat__icon--info { background: var(--jb-info-soft); }
.jb-mg-stat__label .jb-mg-stat__icon--info svg { color: #1d4ed8; }
.jb-mg-stat__label .jb-mg-stat__icon--success { background: var(--jb-success-soft); }
.jb-mg-stat__label .jb-mg-stat__icon--success svg { color: #15803d; }
.jb-mg-stat__label .jb-mg-stat__icon--warning { background: var(--jb-warning-soft); }
.jb-mg-stat__label .jb-mg-stat__icon--warning svg { color: #a25c06; }
.jb-mg-stat__label .jb-mg-stat__icon--danger { background: var(--jb-danger-soft); }
.jb-mg-stat__label .jb-mg-stat__icon--danger svg { color: #b91c1c; }
.jb-mg-stat__label .jb-mg-stat__icon--neutral { background: var(--jb-gray-100); }
.jb-mg-stat__label .jb-mg-stat__icon--neutral svg { color: var(--jb-gray-600); }

/* ── Bande d'abonnement ─────────────────────────────────────────────────── */

.jb-mg-plan {
    padding: 1.125rem 1.25rem;
    margin-bottom: 1.25rem;
    border-radius: var(--jb-radius-md);
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-mg-plan__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.25rem;
}
.jb-mg-plan__label {
    margin: 0;
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
}
.jb-mg-plan__name {
    margin: .125rem 0 0;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--jb-white);
}
.jb-mg-plan__name--active { color: var(--jb-orange); }
.jb-mg-plan__note {
    margin: .125rem 0 0;
    font-size: var(--jb-fs-sm);
    color: rgba(255, 255, 255, .7);
}
.jb-mg-plan__note strong { color: var(--jb-white); }
.jb-mg-plan__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.jb-mg-plan__counters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: .5rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}
.jb-mg-plan__counter {
    display: flex;
    align-items: center;
    gap: .625rem;
    min-width: 0;
}
.jb-mg-plan__counter-icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--jb-radius-sm);
    background: rgba(255, 255, 255, .08);
    color: var(--jb-orange);
}
.jb-mg-plan__counter-icon svg {
    width: 15px;
    height: 15px;
}
.jb-mg-plan__counter-value {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    line-height: 1.2;
    color: var(--jb-white);
}
.jb-mg-plan__counter-label {
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: rgba(255, 255, 255, .6);
}

/* ── Cartes d'outils ────────────────────────────────────────────────────── */

.jb-mg-tools {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
    gap: .75rem;
}
.jb-mg-tool {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    color: var(--jb-black);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.jb-mg-tool:hover {
    border-color: var(--jb-gray-300);
    box-shadow: var(--jb-shadow);
    color: var(--jb-black);
}
.jb-mg-tool__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-bottom: .625rem;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    color: var(--jb-gray-700);
}
.jb-mg-tool__icon svg {
    width: 17px;
    height: 17px;
}
.jb-mg-tool__title {
    margin: 0;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-mg-tool__text {
    margin: .25rem 0 .75rem;
    font-size: var(--jb-fs-sm);
    line-height: 1.5;
    color: var(--jb-gray-600);
}
.jb-mg-tool__cta {
    display: inline-flex;
    align-items: center;
    gap: .3125rem;
    margin-top: auto;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-gray-800);
}
.jb-mg-tool__cta svg {
    width: 14px;
    height: 14px;
    transition: transform .15s ease;
}
.jb-mg-tool:hover .jb-mg-tool__cta { color: var(--jb-orange); }
.jb-mg-tool:hover .jb-mg-tool__cta svg { transform: translateX(3px); }

/* La carte de l'action principale, une seule par ecran : c'est la seule qui
   porte la couleur d'accent en aplat. */
.jb-mg-tool--featured {
    border-color: rgba(254, 103, 3, .3);
    background: var(--jb-orange-soft);
}
.jb-mg-tool--featured .jb-mg-tool__icon {
    background: var(--jb-orange);
    color: var(--jb-white);
}
.jb-mg-tool--featured .jb-mg-tool__cta { color: var(--jb-orange-dark); }

/* Outil non ouvert par le palier : jamais grise ni desactive, seulement
   signale. La carte reste cliquable et l'ecran d'arrivee explique l'outil. */
.jb-mg-tool.is-locked .jb-mg-tool__icon {
    background: var(--jb-gray-100);
    color: var(--jb-gray-500);
}
.jb-mg-tool__lock {
    position: absolute;
    top: .75rem;
    right: .75rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .125rem .5rem;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-black);
    color: var(--jb-white);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
}
.jb-mg-tool__lock svg {
    width: 11px;
    height: 11px;
    color: var(--jb-orange);
}

@media (max-width: 575.98px) {
    .jb-mg-stats { grid-template-columns: repeat(2, 1fr); }
    .jb-mg-stat__value { font-size: 1.35rem; }
    .jb-mg-plan__actions .btn { width: 100%; }
}

/* ==========================================================================
   Fiches de compte en Administration (Chantier V3.19 Lot A)
   ==========================================================================
   Les listes Candidats et Entreprises ne passent plus par un tableau : chaque
   ligne est une fiche qui porte l'identité (photo ou logo), la qualification
   du compte (puces) et ce qu'il a produit (chiffres). Prolonge le motif
   `jb-mg-item` de la modération plutôt que d'ouvrir un système parallèle. */

.jb-mg-item--rich {
    align-items: flex-start;
    padding: 1rem;
}
.jb-mg-item__avatar--lg {
    width: 56px;
    height: 56px;
    font-size: var(--jb-fs-base);
}
/* Le logo d'une entreprise est un visuel fourni, pas une photo cadrée : il
   doit tenir entier dans la vignette, quitte à laisser du blanc autour. */
.jb-mg-item__avatar--logo img {
    object-fit: contain;
    padding: 4px;
    background: var(--jb-white);
}
.jb-mg-item__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem .5rem;
}
/* Les icônes de la ligne de métadonnées sont des repères de balayage, pas des
   pictogrammes à lire : elles restent nettement plus petites que le texte. */
.jb-mg-item__meta svg {
    width: 12px;
    height: 12px;
    margin-right: .125rem;
    vertical-align: -1px;
    color: var(--jb-gray-400);
}
.jb-mg-item__title .jb-mg-item__name {
    display: inline;
    white-space: normal;
}
.jb-mg-item__aside {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .5rem;
    margin-left: auto;
}

/* Chiffres produits par le compte, alignés en bas de fiche. Volontairement
   plus discrets que les puces d'identité : ils se lisent en balayage, pas en
   premier. */
.jb-mg-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1.25rem;
    margin: .625rem 0 0;
    padding: .5rem 0 0;
    border-top: 1px dashed var(--jb-gray-200);
}
.jb-mg-fact {
    display: flex;
    align-items: baseline;
    gap: .3rem;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
}
.jb-mg-fact strong {
    font-size: var(--jb-fs-sm);
    font-weight: 800;
    color: var(--jb-black);
    letter-spacing: -.01em;
}
.jb-mg-fact--empty strong {
    color: var(--jb-gray-400);
}

/* Montant généré par le compte. Seul élément de la fiche à porter l'orange :
   c'est la seule donnée que l'admin cherche des yeux avant toutes les
   autres. */
.jb-mg-money {
    display: block;
    font-size: var(--jb-fs-sm);
    font-weight: 800;
    color: var(--jb-orange);
    white-space: nowrap;
}
.jb-mg-money--empty {
    color: var(--jb-gray-400);
    font-weight: 600;
}
/* Tableau « Aujourd'hui » du tableau de bord : mêmes conventions de couleur
   que les autres montants/compteurs de cet écran (argent en orange comme
   .jb-mg-money, zéro grisé comme .jb-mg-stat--idle). */
.jb-mg-today-icon {
    width: 14px;
    height: 14px;
    margin-right: .5rem;
    color: var(--jb-gray-400);
}
.jb-mg-today-count {
    font-weight: 800;
    color: var(--jb-black);
}
.jb-mg-today-count--empty {
    color: var(--jb-gray-400);
    font-weight: 600;
}
.jb-mg-today-count--money {
    color: var(--jb-orange);
}
.jb-mg-money__label {
    display: block;
    font-size: var(--jb-fs-xs);
    font-weight: 500;
    color: var(--color-text-muted);
    text-align: right;
}

.jb-mg-chip--premium {
    border-color: #f5d9c1;
    background: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
}
.jb-mg-chip--muted {
    border-color: var(--jb-gray-200);
    background: var(--jb-gray-50);
    color: var(--jb-gray-500);
}
.jb-mg-chip--owner {
    border-color: var(--jb-black);
    background: var(--jb-black);
    color: var(--jb-white);
}

/* Ligne de membre dans la modale « équipe » d'une fiche entreprise. */
.jb-mg-member {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .625rem 0;
}
.jb-mg-member + .jb-mg-member {
    border-top: 1px solid var(--jb-gray-200);
}
.jb-mg-member__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: var(--jb-radius-pill);
    background: var(--jb-gray-100);
    border: 1px solid var(--jb-gray-200);
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    color: var(--jb-gray-700);
    overflow: hidden;
}
.jb-mg-member__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jb-mg-member__name {
    margin: 0;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-black);
}
.jb-mg-member__mail {
    margin: 0;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
    word-break: break-all;
}

@media (max-width: 767.98px) {
    .jb-mg-item__aside {
        width: 100%;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        margin-left: 0;
    }
    .jb-mg-money__label { text-align: left; }
}

/* ==========================================================================
   TABLEAU DE BORD DE L'ADMINISTRATION (TODO.md Chantier V3.19 Lot C)
   --------------------------------------------------------------------------
   Trois modificateurs seulement : le reste de l'écran réutilise tel quel les
   composants du Lot A (`jb-mg-stat`, `jb-mg-panel`, `jb-mg-facts`). La file
   d'attente et les compteurs de module partagent la même grille, il faut donc
   que l'oeil distingue « il y a du travail » de « rien à faire » sans lire les
   libellés.
   ========================================================================== */

/* Une file qui attend une décision. L'orange est réservé à ça sur cet écran,
   comme le montant l'est sur les fiches de compte. */
.jb-mg-stat--pending .jb-mg-stat__value {
    color: var(--jb-orange);
}
/* Une file vide reste affichée, en gris : la masquer obligerait à se demander
   chaque matin si le travail est fait ou si l'écran a changé de contenu. */
.jb-mg-stat--idle {
    background: var(--jb-gray-50);
}
.jb-mg-stat--idle .jb-mg-stat__value,
.jb-mg-stat--idle .jb-mg-stat__label {
    color: var(--jb-gray-400);
}

/* Rangée de chiffres seule dans un panneau : elle n'a alors rien au-dessus
   d'elle dont il faudrait la séparer. */
.jb-mg-facts--flush {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

/* ==========================================================================
   Carte d'annonce de Service (`jb-ad-card`)
   ==========================================================================

   Une grille de cartes, et non une pile de bandeaux pleine largeur : une
   annonce de Service se juge d'abord sur sa photo et son prix, et une ligne
   qui traverse tout l'écran laissait les deux tiers de la largeur vides sur un
   poste de bureau tout en n'affichant que trois annonces par écran.

   Le même bloc sert au prestataire (« Mes services ») et à l'Administration
   (file de validation) : ce sont deux lectures de la même annonce, et deux
   gabarits auraient fini par montrer deux prix différents. Ce qui change entre
   les deux, ce sont les actions du pied de carte, pas la carte.

   Hiérarchie assumée : la photo porte la reconnaissance, le titre porte
   l'identification, le prix porte la décision. Les statistiques descendent en
   ligne discrète, les actions secondaires vont sous l'ellipse (CLAUDE.md). */

.jb-ad-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 20px;
}

.jb-ad-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-border);
    border-radius: var(--jb-radius-md);
    background-color: var(--jb-white);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

/* L'ombre est réservée au survol : elle dit « cet élément répond », elle n'est
   pas un habillage posé sur tout ce qui est encadré. */
.jb-ad-card:hover {
    border-color: var(--jb-gray-300);
    box-shadow: 0 6px 18px -12px rgba(11, 10, 10, .35);
}

.jb-ad-card__row {
    position: relative;
    display: flex;
    gap: 14px;
    padding: 12px;
}

.jb-ad-card__media {
    position: relative;
    flex: 0 0 auto;
    width: 124px;
    align-self: stretch;
    min-height: 140px;
    border-radius: var(--jb-radius-sm);
    background-color: var(--jb-gray-100);
    overflow: hidden;
}

.jb-ad-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.jb-ad-card__media-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--jb-gray-400);
}

/* Nombre de photos, posé sur l'image : l'information n'a de sens que là. */
.jb-ad-card__media-count {
    position: absolute;
    left: 6px;
    bottom: 6px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px;
    border-radius: var(--jb-radius-pill);
    background-color: rgba(11, 10, 10, .68);
    color: var(--jb-white);
    font-size: 10px;
    font-weight: 700;
}

.jb-ad-card__media-count i,
.jb-ad-card__media-count svg {
    width: 11px;
    height: 11px;
}

/* Épinglage : le seul ruban de la carte, pour la seule chose qui se paie. */
.jb-ad-card__flag {
    position: absolute;
    top: 6px;
    left: 6px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px;
    border-radius: var(--jb-radius-pill);
    background-color: var(--jb-orange);
    color: var(--jb-white);
    font-size: 10px;
    font-weight: 700;
}

.jb-ad-card__flag i,
.jb-ad-card__flag svg {
    width: 11px;
    height: 11px;
}

.jb-ad-card__info {
    flex: 1 1 auto;
    min-width: 0;
    padding-right: 30px;
}

/* Le prestataire, en tête et en retrait : sur la file de validation il dit à
   qui on parle, sur l'espace du prestataire il rappelle sous quel nom son
   annonce est publiée. */
.jb-ad-card__owner {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
    min-width: 0;
}

.jb-ad-card__owner span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jb-ad-card__avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: var(--jb-orange-soft);
    color: var(--jb-orange-dark);
    font-size: 9px;
    font-weight: 700;
    overflow: hidden;
}

.jb-ad-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.jb-ad-card__title {
    margin: 0 0 6px;
    font-size: var(--jb-fs-base);
    font-weight: 700;
    line-height: 1.35;
    color: var(--jb-black);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jb-ad-card__title a {
    color: inherit;
    text-decoration: none;
}

.jb-ad-card__title a:hover {
    color: var(--jb-orange-dark);
}

.jb-ad-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-bottom: 8px;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
}

.jb-ad-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.jb-ad-card__meta i,
.jb-ad-card__meta svg {
    width: 12px;
    height: 12px;
    color: var(--jb-gray-400);
}

/* Statut et prix sur la même ligne : c'est le couple qu'on lit d'un coup
   d'oeil pour savoir si l'annonce travaille et à quel tarif. */
.jb-ad-card__line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.jb-ad-card__price {
    font-size: var(--jb-fs-sm);
    font-weight: 800;
    color: var(--jb-black);
}

.jb-ad-card__deadline {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--jb-fs-xs);
    color: var(--color-text-muted);
}

.jb-ad-card__deadline i,
.jb-ad-card__deadline svg {
    width: 12px;
    height: 12px;
    color: var(--jb-gray-400);
}

.jb-ad-card__deadline.is-over {
    color: var(--jb-danger);
}

.jb-ad-card__deadline.is-over i,
.jb-ad-card__deadline.is-over svg {
    color: var(--jb-danger);
}

/* Statistiques d'audience : présentes, mais jamais au-dessus du prix. */
.jb-ad-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 8px;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}

.jb-ad-card__stats span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.jb-ad-card__stats i,
.jb-ad-card__stats svg {
    width: 12px;
    height: 12px;
    color: var(--jb-gray-400);
}

.jb-ad-card__stats .is-highlight {
    color: var(--jb-orange-dark);
    font-weight: 700;
}

.jb-ad-card__stats .is-highlight i,
.jb-ad-card__stats .is-highlight svg {
    color: var(--jb-orange-dark);
}

/* Actions secondaires : une seule ellipse, en haut à droite de la carte. */
.jb-ad-card__more {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
}

.jb-ad-card__more > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background-color: var(--jb-white);
    color: var(--jb-gray-600);
    cursor: pointer;
}

.jb-ad-card__more > button:hover {
    border-color: var(--jb-gray-300);
    color: var(--jb-black);
}

.jb-ad-card__more > button i,
.jb-ad-card__more > button svg {
    width: 16px;
    height: 16px;
}

/* Message de modération : il coupe la carte en deux parce qu'il doit être lu
   avant les actions, pas glissé entre deux lignes de métadonnées. */
.jb-ad-card__note {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border-top: 1px solid var(--color-border-soft);
    font-size: var(--jb-fs-xs);
    line-height: 1.5;
}

.jb-ad-card__note i,
.jb-ad-card__note svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin-top: 2px;
}

.jb-ad-card__note--warning {
    background-color: var(--jb-warning-soft);
    color: #8a5a08;
}

.jb-ad-card__note--danger {
    background-color: var(--jb-danger-soft);
    color: #9c1c1c;
}

/* Pied de carte : une action principale, une action secondaire, le reste sous
   l'ellipse. Le pied garde la même hauteur d'une carte à l'autre pour que les
   boutons s'alignent sur toute la rangée. */
.jb-ad-card__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding: 10px 12px;
    border-top: 1px solid var(--color-border-soft);
    background-color: var(--jb-gray-50);
}

.jb-ad-card__actions > .jb-btn,
.jb-ad-card__actions > .btn {
    flex: 1 1 0;
    justify-content: center;
    white-space: nowrap;
}

@media (max-width: 400px) {
    .jb-ad-card__media {
        width: 96px;
        min-height: 120px;
    }
}

/* ══ Fiche entreprise 360 de l'Administration (TODO.md Chantier V3.29 Lot F) ══
   Une seule couleur d'accent, réservée à l'argent encaissé et à l'onglet
   actif. Les zéros sont grisés : l'œil va aux chiffres qui existent. Pas
   d'ombre au repos, seulement des bordures. */

.jb-co-back {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-bottom: .75rem;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    color: var(--jb-gray-600);
    text-decoration: none;
}
.jb-co-back:hover { color: var(--jb-black); }
.jb-co-back svg { width: 15px; height: 15px; }

.jb-co-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius-md);
    background: var(--jb-white);
}
.jb-co-hero__main {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}
.jb-co-hero__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-gray-50);
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--jb-gray-700);
}
.jb-co-hero__logo img { width: 100%; height: 100%; object-fit: contain; }
.jb-co-hero__name {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: 0;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--jb-black);
}
.jb-co-hero__verified { width: 20px; height: 20px; color: var(--jb-info); }
.jb-co-hero__subtitle {
    margin: .125rem 0 .5rem;
    font-size: var(--jb-fs-sm);
    color: var(--jb-gray-600);
}
.jb-co-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
}
.jb-co-hero__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.jb-co-hero__actions .btn svg { width: 15px; height: 15px; margin-right: .25rem; vertical-align: -2px; }
.jb-co-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
}
.jb-co-ellipsis svg { width: 16px; height: 16px; }

/* Chiffres groupés : trois blocs, quatre valeurs chacun. */
.jb-co-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.jb-co-kpi {
    padding: 1rem 1.125rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
}
.jb-co-kpi__title {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: 0 0 .75rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--jb-gray-600);
}
.jb-co-kpi__title svg { width: 14px; height: 14px; }
.jb-co-kpi__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem 1rem;
}
.jb-co-figure {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.jb-co-figure__value {
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--jb-black);
    white-space: nowrap;
}
.jb-co-figure__label {
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
}
.jb-co-figure.is-money .jb-co-figure__value { color: var(--jb-orange); }
.jb-co-figure.is-empty .jb-co-figure__value,
.jb-co-figure.is-empty .jb-co-figure__label { color: var(--jb-gray-400); }

/* Onglets pilotés par Bootstrap : un onglet ouvert par ancre porte `.active`
   avant que le script ne pose `.is-active`. */
.jb-mg-tab.active {
    color: var(--jb-black);
    border-bottom-color: var(--jb-orange);
}

.jb-co-card {
    padding: 1.125rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    overflow: hidden;
}
.jb-co-card__title {
    margin: 0 0 .875rem;
    font-size: var(--jb-fs-base);
    font-weight: 800;
    color: var(--jb-black);
}
.jb-co-card__eyebrow {
    margin: 0;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--jb-gray-400);
}
.jb-co-muted { font-size: var(--jb-fs-sm); color: var(--jb-gray-600); }
.jb-co-empty { font-size: var(--jb-fs-sm); color: var(--jb-gray-500); }
.jb-co-footnote {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    margin: .75rem 0 0;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-500);
}
.jb-co-footnote svg { width: 13px; height: 13px; }
.jb-co-link {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-black);
    text-decoration: none;
}
.jb-co-link svg { width: 14px; height: 14px; }

/* Libellé au-dessus de la valeur : lecture en colonne, pas en aller-retour
   gauche-droite comme l'ancienne liste de définitions. */
.jb-co-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.25rem;
    margin: 0;
}
.jb-co-fact dt {
    margin-bottom: .125rem;
    font-size: var(--jb-fs-xs);
    font-weight: 600;
    color: var(--jb-gray-500);
}
.jb-co-fact dd {
    margin: 0;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-gray-900);
    overflow-wrap: anywhere;
}
.jb-co-fact dd.is-empty { font-weight: 500; color: var(--jb-gray-400); }
.jb-co-fact__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
}

.jb-co-contacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .625rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.jb-co-contact {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    column-gap: .625rem;
    align-items: center;
}
.jb-co-contact__icon {
    grid-row: span 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--jb-radius-sm);
    background: var(--jb-gray-100);
    color: var(--jb-gray-800);
}
.jb-co-contact__icon svg { width: 15px; height: 15px; }
.jb-co-contact__label { font-size: var(--jb-fs-xs); color: var(--jb-gray-500); }
.jb-co-contact__value {
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-gray-900);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.jb-co-contact__value:hover { text-decoration: underline; }
.jb-co-contact.is-empty .jb-co-contact__icon { color: var(--jb-gray-400); background: var(--jb-gray-50); }
.jb-co-contact.is-empty .jb-co-contact__value { font-weight: 500; color: var(--jb-gray-400); }

.jb-co-cover {
    display: block;
    width: 100%;
    max-height: 180px;
    margin-bottom: 1rem;
    border-radius: var(--jb-radius-sm);
    object-fit: cover;
}
.jb-co-text + .jb-co-text { margin-top: .875rem; }
.jb-co-text__title {
    margin: 0 0 .25rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--jb-gray-500);
}
.jb-co-text__body {
    margin: 0;
    font-size: var(--jb-fs-sm);
    line-height: 1.6;
    color: var(--jb-gray-800);
    white-space: pre-line;
}

/* Abonnement : seul bloc sombre de l'écran, il se repère sans chercher. */
.jb-co-card--dark {
    border-color: var(--jb-black);
    background: var(--jb-black);
    color: var(--jb-white);
}
.jb-co-plan {
    margin: .25rem 0 0;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--jb-white);
}
.jb-co-plan__expiry { margin: 0 0 .875rem; font-size: var(--jb-fs-sm); color: var(--jb-gray-400); }
.jb-co-plan__rows { margin: 0; }
.jb-co-plan__rows > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .5rem 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: var(--jb-fs-sm);
}
.jb-co-plan__rows dt { font-weight: 500; color: var(--jb-gray-400); }
.jb-co-plan__rows dd { margin: 0; font-weight: 700; text-align: right; }
.jb-co-plan__rows dd small { display: block; font-weight: 500; color: var(--jb-gray-400); }
.jb-co-plan__legend {
    margin: 1rem 0 0;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--jb-gray-400);
}

.jb-co-role {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .625rem 0;
}
.jb-co-role + .jb-co-role { border-top: 1px solid var(--jb-gray-200); }
.jb-co-role__name { margin: 0; font-size: var(--jb-fs-sm); font-weight: 700; color: var(--jb-gray-900); }
.jb-co-role.is-off .jb-co-role__name { color: var(--jb-gray-400); }

/* Membre : une carte complète par personne. Le gérant porte un liseré
   noir à gauche pour se repérer d'un coup d'œil dans une grande équipe. */
.jb-co-member {
    margin-bottom: 1rem;
    border: 1px solid var(--jb-gray-200);
    border-radius: var(--jb-radius);
    background: var(--jb-white);
    overflow: hidden;
}
.jb-co-member.is-owner { box-shadow: inset 3px 0 0 var(--jb-black); }
.jb-co-member__head {
    display: flex;
    align-items: center;
    gap: .875rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--jb-gray-200);
}
.jb-co-member__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--jb-gray-900);
    font-weight: 800;
    color: var(--jb-white);
}
.jb-co-member__avatar img { width: 100%; height: 100%; object-fit: cover; }
.jb-co-member__name { margin: 0; font-size: var(--jb-fs-lg); font-weight: 800; color: var(--jb-black); }
.jb-co-member__role { margin: 0 0 .375rem; font-size: var(--jb-fs-sm); color: var(--jb-gray-600); }
.jb-co-member__body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jb-co-member__col { padding: 1rem 1.25rem; }
.jb-co-member__col + .jb-co-member__col { border-left: 1px solid var(--jb-gray-200); }
.jb-co-member__label {
    margin: 0 0 .5rem;
    font-size: var(--jb-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--jb-gray-500);
}
.jb-co-member__label:not(:first-child) { margin-top: 1rem; }
.jb-co-member__contacts { margin: 0; padding: 0; list-style: none; }
.jb-co-member__contacts li {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .1875rem 0;
    font-size: var(--jb-fs-sm);
    font-weight: 600;
    overflow-wrap: anywhere;
}
.jb-co-member__contacts svg { flex: 0 0 auto; width: 14px; height: 14px; color: var(--jb-gray-500); }
.jb-co-member__contacts a { color: var(--jb-gray-900); text-decoration: none; }
.jb-co-member__contacts a:hover { text-decoration: underline; }
.jb-co-member__access { margin: 0 0 .5rem; font-size: var(--jb-fs-sm); font-weight: 700; color: var(--jb-gray-900); }
.jb-co-timeline { margin: 0; }
.jb-co-timeline > div {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: .75rem;
    padding: .3125rem 0;
    font-size: var(--jb-fs-sm);
}
.jb-co-timeline dt { font-weight: 500; color: var(--jb-gray-500); }
.jb-co-timeline dd { margin: 0; font-weight: 700; color: var(--jb-gray-900); }
.jb-co-timeline dd.is-empty { font-weight: 500; color: var(--jb-gray-400); }
.jb-co-member__activity {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    padding: .875rem 1.25rem;
    border-top: 1px solid var(--jb-gray-200);
    background: var(--jb-gray-50);
}

/* Lignes des onglets Offres et Paiements. */
.jb-co-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .875rem 1.25rem;
}
.jb-co-row + .jb-co-row { border-top: 1px solid var(--jb-gray-200); }
.jb-co-row__main { flex: 1 1 auto; min-width: 0; }
.jb-co-row__title {
    display: block;
    font-size: var(--jb-fs-sm);
    font-weight: 700;
    color: var(--jb-gray-900);
    text-decoration: none;
}
a.jb-co-row__title:hover { text-decoration: underline; }
.jb-co-row__figures {
    display: flex;
    gap: 1rem;
    font-size: var(--jb-fs-xs);
    color: var(--jb-gray-600);
    white-space: nowrap;
}
.jb-co-row__figures strong { font-size: var(--jb-fs-sm); color: var(--jb-gray-900); }
.jb-co-row__amount { font-weight: 800; color: var(--jb-gray-900); white-space: nowrap; }

@media (max-width: 1199.98px) {
    .jb-co-kpis { grid-template-columns: 1fr; }
    .jb-co-kpi__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .jb-co-hero__actions { width: 100%; }
    .jb-co-kpi__grid,
    .jb-co-member__activity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jb-co-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jb-co-contacts,
    .jb-co-member__body { grid-template-columns: 1fr; }
    .jb-co-member__col + .jb-co-member__col { border-left: 0; border-top: 1px solid var(--jb-gray-200); }
    .jb-co-timeline > div { grid-template-columns: 130px minmax(0, 1fr); }
    .jb-co-row { flex-wrap: wrap; }
    .jb-co-row__main { flex-basis: 100%; }
}

/* Nom du palier mis en avant, lisible sur l'en-tête sombre (TODO.md Chantier V3.33 Lot E). */
.jb-plan-card.is-featured .jb-plan-card__name {
    color: #fff;
}
