/* Bilanlytics — compléments au thème Phoenix (public/css/theme.min.css).
   Aucun style inline dans les templates : la CSP les interdit. */

@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url("/fonts/nunito-sans-latin.woff2") format("woff2");
}

.qr-img { width: 220px; height: 220px; }
.theme-toggle-size { height: 32px; width: 32px; }
.icon-20 { height: 20px; width: 20px; }
.org-switcher-menu { min-width: 18rem; }
.logo-mark { width: 32px; height: 32px; flex-shrink: 0; }
.logo-mark-lg { width: 56px; height: 56px; }
.auth-wrapper { max-width: 440px; }
.domain-dot { width: .75rem; height: .75rem; border-radius: 50%; display: inline-block; }
:focus-visible { outline: 3px solid #f0b400; outline-offset: 2px; }

/* --- Kanban (lot 3) ------------------------------------------------------ */
.kanban-board { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; align-items: flex-start; }
.kanban-col { flex: 0 0 290px; background: var(--phoenix-body-highlight-bg, #f5f7fa); border: 1px solid var(--phoenix-border-color-translucent, #e3e6ed); border-radius: .5rem; }
.kanban-col-header { padding: .75rem 1rem; border-bottom: 1px solid var(--phoenix-border-color-translucent, #e3e6ed); }
.kanban-list { min-height: 120px; padding: .75rem; display: flex; flex-direction: column; gap: .6rem; }
.kanban-card { background: var(--phoenix-emphasis-bg, #fff); border: 1px solid var(--phoenix-border-color-translucent, #e3e6ed); border-radius: .5rem; padding: .65rem .75rem; }
.kanban-card[data-draggable="1"] { cursor: grab; }
.kanban-card .stretched-link:focus-visible { outline: none; }
/* Intitulé des cartes : noir en thème clair, clair en thème sombre (lisibilité). */
.kanban-card-link, .kanban-card-link:hover { color: #000; }
[data-bs-theme="dark"] .kanban-card-link, [data-bs-theme="dark"] .kanban-card-link:hover { color: var(--phoenix-emphasis-color, #fff); }
.kanban-card:focus-within { outline: 3px solid #f0b400; outline-offset: 2px; }
.kanban-ghost { opacity: .4; }
.kanban-col-ko .kanban-col-header { border-top: 3px solid var(--phoenix-danger, #ed2000); border-radius: .5rem .5rem 0 0; }
.kanban-col-ok .kanban-col-header { border-top: 3px solid var(--phoenix-success, #25b003); border-radius: .5rem .5rem 0 0; }
.kanban-col-doing .kanban-col-header { border-top: 3px solid var(--phoenix-primary, #3874ff); border-radius: .5rem .5rem 0 0; }
.kanban-col-na .kanban-col-header { border-top: 3px solid var(--phoenix-info, #0097eb); border-radius: .5rem .5rem 0 0; }
.kanban-col-todo .kanban-col-header { border-top: 3px solid var(--phoenix-secondary, #6e7891); border-radius: .5rem .5rem 0 0; }
.avatar-xs-initials { width: 1.6rem; height: 1.6rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    font-size: .7rem; font-weight: 700; background: var(--phoenix-primary-bg-subtle, #e5edff); color: var(--phoenix-primary, #3874ff); }
.comment-body { white-space: pre-wrap; word-break: break-word; }
.history-value { white-space: pre-wrap; max-height: 8rem; overflow: auto; }
.icon-14 { width: 14px; height: 14px; }

/* --- Page d'accueil publique ------------------------------------------- */
.landing-nav { background: rgba(8, 14, 44, .85); backdrop-filter: blur(6px); }
.landing-nav .nav-link, .landing-nav .navbar-brand { color: #e8eefc; }
.landing-nav .nav-link:hover { color: #fff; }
.landing-hero {
    position: relative; color: #fff; min-height: 88vh; display: flex; align-items: center;
    background-color: #0b1446;
    background-image: linear-gradient(90deg, rgba(6, 10, 38, .92) 0%, rgba(6, 10, 38, .70) 45%, rgba(6, 10, 38, .25) 100%),
        url("/images/hero-1920.jpg");
    background-image: linear-gradient(90deg, rgba(6, 10, 38, .92) 0%, rgba(6, 10, 38, .70) 45%, rgba(6, 10, 38, .25) 100%),
        image-set(url("/images/hero-1920.webp") type("image/webp"), url("/images/hero-1920.jpg") type("image/jpeg"));
    background-size: cover; background-position: center;
}
@media (max-width: 992px) {
    .landing-hero {
        background-image: linear-gradient(180deg, rgba(6, 10, 38, .88), rgba(6, 10, 38, .80)),
            image-set(url("/images/hero-960.webp") type("image/webp"), url("/images/hero-960.jpg") type("image/jpeg"));
    }
}
.landing-hero h1 { color: #fff; font-weight: 800; line-height: 1.15; }
.landing-hero .lead { color: #c9d6f5; }
.landing-hero .hero-badge { background: rgba(56, 116, 255, .25); color: #cfe0ff; border: 1px solid rgba(120, 160, 255, .45); }
.landing-hero .btn-outline-light:hover { color: #0b1446; }
.landing-stat { color: #fff; }
.landing-stat strong { display: block; font-size: 1.75rem; font-weight: 800; }
.landing-stat span { color: #aebde6; font-size: .85rem; }
.landing-section { padding: 5rem 0; }
.landing-section-alt { background: var(--phoenix-body-highlight-bg, #f5f7fa); }
.feature-icon { width: 3rem; height: 3rem; border-radius: .75rem; display: inline-flex; align-items: center; justify-content: center;
    background: var(--phoenix-primary-bg-subtle, #e5edff); color: var(--phoenix-primary, #3874ff); }
.step-number { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: var(--phoenix-primary, #3874ff); color: #fff; font-weight: 800; }
.landing-cta { background: linear-gradient(120deg, #0b1446, #1f3a8f); color: #fff; }
.landing-cta h2 { color: #fff; }
.landing-footer { background: #070b26; color: #aebde6; }
.landing-footer a { color: #dbe5ff; }
.auth-visual {
    background-color: #0b1446;
    background-image: linear-gradient(0deg, rgba(6, 10, 38, .85) 0%, rgba(6, 10, 38, .15) 60%),
        image-set(url("/images/hero-960.webp") type("image/webp"), url("/images/hero-960.jpg") type("image/jpeg"));
    background-size: cover; background-position: center;
}

/* Sélecteur de langue sur fond sombre (page d'accueil) */
.landing-nav .locale-switcher .btn-link,
.landing-nav .locale-switcher [data-feather],
.landing-nav .locale-switcher svg { color: #fff !important; }

/* Sélecteur de langue sur fond sombre (page d'accueil) */
.landing-nav .locale-switcher .btn-link,
.landing-nav .locale-switcher svg { color: #fff !important; }

/* Formulaire de contact : champ piège à robots, invisible pour les personnes */
.contact-trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-message-body { white-space: normal; overflow-wrap: anywhere; }

/* Informations légales non encore renseignées (config/packages/legal.yaml) */
.legal-todo { background: rgba(255, 193, 7, .35); padding: 0 .25em; border-radius: .2em; }

/* Boutons « Se connecter » de la page d'accueil : bien visibles sur fond sombre (contraste AA) */
.btn-landing-login {
    color: #fff;
    background: rgba(255, 255, 255, .14);
    border: 2px solid #fff;
    font-weight: 600;
}
.btn-landing-login:hover,
.btn-landing-login:focus-visible {
    color: #0b1446;
    background: #fff;
    border-color: #fff;
}
.btn-landing-login:focus-visible { outline: 3px solid #9ec5ff; outline-offset: 2px; }
