:root {
    --blue: #00A3E0;
    --green: #73C92D;
    --grey: #91999F;
    --bg-color: #f8f9fa;
}

body { font-family: 'Trebuchet MS', sans-serif; background-color: var(--bg-color); color: #333; margin: 0; padding: 20px; display: flex; flex-direction: column; align-items: center; }
.container { width: 100%; max-width: 90%; background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
h1, h2, h3 { color: var(--blue); text-align: center; }

.input-group { display: flex; gap: 10px; margin-bottom: 20px; }
input[type="url"] { flex: 1; padding: 12px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
button { padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; font-family: 'Trebuchet MS', sans-serif; font-weight: bold; transition: opacity 0.3s; }
button:hover { opacity: 0.8; }

.btn-add { background-color: var(--grey); color: white; }
.btn-submit { background-color: var(--blue); color: white; width: 100%; font-size: 1.1em; margin-top: 15px; }
.btn-delete { background-color: var(--grey); color: white; margin-top: 10px; width: 100%; }
.btn-save-note { background-color: var(--blue); color: white; margin-top: 10px; width: 100%; }
.btn-small { padding: 5px 10px; font-size: 0.8em; background-color: var(--grey); color: white; display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; }

.queue-section { border: 1px solid var(--blue); border-radius: 8px; padding: 15px; margin-bottom: 25px; background-color: #fcfcfc; }
.queue-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 15px; }
.queue-item { display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 10px; border: 1px solid #eee; border-radius: 5px; }
.queue-item label { display: flex; align-items: center; gap: 10px; word-break: break-all; cursor: pointer; flex: 1; margin-right: 15px; }
.queue-item input[type="checkbox"] { accent-color: var(--blue); width: 18px; height: 18px; cursor: pointer; }
.queue-delete-btn { background: none; color: var(--grey); padding: 5px; cursor: pointer; }
.queue-delete-btn:hover { color: red; }

#loader { display: none; text-align: center; margin: 20px 0; color: var(--blue); }

.result-card, details.history-card { border-left: 5px solid var(--green); background: #fdfdfd; margin-top: 20px; border-radius: 0 5px 5px 0; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.result-card { padding: 15px; }
details.history-card summary { padding: 15px; cursor: pointer; color: var(--blue); list-style: none; display: flex; justify-content: space-between; align-items: center; }
details.history-card summary::-webkit-details-marker { display: none; }
details.history-card summary .fa-chevron-down { transition: transform 0.3s; }
details.history-card[open] summary .fa-chevron-down { transform: rotate(180deg); }
.details-content { padding: 0 15px 15px 15px; border-top: 1px dashed rgba(0,0,0,0.1); margin-top: 10px; padding-top: 15px; }

.slider-container { width: 100%; border-radius: 5px; overflow: hidden; margin-bottom: 20px; background: #000; position: relative; }
.slider-wrapper { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.slider-wrapper::-webkit-scrollbar { display: none; }
.slide { flex: 0 0 100%; scroll-snap-align: start; display: flex; justify-content: center; align-items: center; }
.slide img { width: 100%; height: 250px; object-fit: cover; }
.slider-hint { text-align: center; font-size: 0.8em; color: var(--grey); margin-top: 5px; margin-bottom: 15px; }

.titres-container {
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    height: 100%;
    background: #f8f9fa;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 15px;
    box-sizing: border-box;
    margin: 0;
}
.titres-title { margin-top: 0; font-weight: bold; }
.titre-item { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,0,0,0.05); gap: 10px; }
.titre-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.condenses-container { background-color: rgba(115, 201, 45, 0.1); padding: 15px; border-radius: 5px; margin-bottom: 15px; }
.condense-title { color: var(--green); font-weight: bold; margin-bottom: 10px; margin-top: 0; }
.condense-item { margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dashed var(--green); }
.condense-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }

.url-tags { font-size: 0.9em; margin-bottom: 15px; }
.url-tags a { color: var(--blue); text-decoration: none; word-break: break-all; }
.url-tags a:hover { text-decoration: underline; }

.note-container { margin-top: 20px; padding-top: 15px; border-top: 1px solid rgba(0,0,0,0.1); }
.note-container label { display: block; color: var(--blue); font-weight: bold; margin-bottom: 10px; }
.note-input { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; resize: vertical; min-height: 80px; box-sizing: border-box; }

.first-letter-cap::first-letter { text-transform: uppercase; }

.queue-accordion {
    margin-top: 10px;
    border-radius: 5px;
    border-left: 5px solid var(--blue);
}
.queue-accordion summary {
    background-color: white;
    border-radius: 5px;
}
.group-checkbox {
    accent-color: var(--blue);
    width: 20px;
    height: 20px;
    cursor: pointer;
}
.keywords-list {
    font-size: 0.85em;
    color: var(--grey);
    margin-top: 8px;
    margin-left: 28px;
    background-color: #f0f0f0;
    padding: 5px 10px;
    border-radius: 4px;
    width: calc(100% - 38px);
    box-sizing: border-box;
}

/* --- ADMINISTRATION --- */
.tabs { display: flex; border-bottom: 2px solid var(--blue); margin-bottom: 20px; }
.tab-btn { background: none; border: none; padding: 10px 20px; font-size: 1.1em; cursor: pointer; color: var(--grey); transition: 0.3s; font-family: 'Trebuchet MS', sans-serif; }
.tab-btn:hover { color: var(--blue); }
.tab-btn.active { color: var(--blue); font-weight: bold; margin-bottom: -2px; }
.tab-content { display: none; }
.tab-content.active { display: block; }

.admin-section { border: 1px solid #eee; padding: 20px; border-radius: 8px; margin-bottom: 20px; background: #fcfcfc; }
.admin-section h3 { text-align: left; margin-top: 0; color: var(--blue); border-bottom: 1px dashed var(--blue); padding-bottom: 10px; margin-bottom: 20px; }
.form-group { margin-bottom: 15px; display: flex; flex-direction: column; }
.form-group label { font-weight: bold; margin-bottom: 5px; color: #333; }
.form-group input[type="text"], .form-group input[type="email"], .form-group input[type="password"] { padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
.form-group input:focus { border-color: var(--blue); outline: none; }

.toggle-switch { display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: bold; }
.toggle-switch input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--blue); cursor: pointer; }

.nav-links { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.nav-links a { color: var(--grey); text-decoration: none; font-weight: bold; }
.nav-links a:hover { color: var(--blue); }

table {
    table-layout: fixed;
    width: 100%;
}

/* --- MISE EN FORME DES ARTICLES RSS (INDEX ET ADMIN) --- */
.rss-card {
    display: flex;
    gap: 15px;
    padding: 15px;
    margin-bottom: 15px;
    background: #fff;
    border: 1px solid var(--grey);
    border-radius: 8px;
    align-items: flex-start;
}

.rss-image {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    border: 1px solid #eee;
}

.rss-content-wrapper {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0; 
}

.rss-site-info {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--blue);
    font-weight: bold;
    font-size: 0.9em;
}

.rss-title {
    margin: 0;
    font-size: 1.1em;
    line-height: 1.3;
}

.rss-title a {
    text-decoration: none;
    color: #333;
}

.rss-title a:hover {
    color: var(--green);
}

.rss-desc {
    margin: 0;
    color: #555;
    font-size: 0.95em;
    line-height: 1.4;
}

.rss-card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.rss-card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1) !important;
}

/* --- SOUS NAVIGATION RSS --- */
.sub-nav {
    border-bottom: 2px solid #eee;
    display: flex;
    align-items: center;
    flex-wrap: wrap; 
}

.sub-btn {
    background: none;
    border: none;
    padding: 10px 15px;
    font-size: 1em;
    cursor: pointer;
    color: var(--grey);
    border-bottom: 3px solid transparent;
    font-family: 'Trebuchet MS', sans-serif;
    transition: 0.3s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.sub-btn:hover {
    color: var(--blue);
}

.sub-btn.active {
    color: var(--blue);
    border-bottom-color: var(--blue);
    font-weight: bold;
}

/* --- BADGES POUR LES COMPTEURS --- */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border-radius: 20px;
    min-width: 22px;
    height: 22px;
    font-size: 0.85em;
    font-weight: bold;
    padding: 0 6px;
}

.badge.bg-blue { background-color: var(--blue); }
.badge.bg-green { background-color: var(--green); }
.badge.bg-grey { background-color: var(--grey); }
.badge.bg-yellow { background-color: #f1c40f; color: #333; }

/* --- MODALE DE PURGE (Global) --- */
.modal-overlay {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.6);
    display: flex; justify-content: center; align-items: center;
    z-index: 1000; padding: 20px; box-sizing: border-box;
}

.modal-content {
    background: white; padding: 30px; border-radius: 10px;
    width: 100%; max-height: 90vh; position: relative;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
    display: flex; flex-direction: column; box-sizing: border-box;
}

.close-modal {
    position: absolute; top: 15px; right: 20px;
    font-size: 28px; cursor: pointer; color: var(--grey);
    line-height: 1; z-index: 10;
}

.close-modal:hover { color: red; }

/* --- BOUTON RETOUR EN HAUT --- */
#back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 999;
    border: none;
    outline: none;
    background-color: var(--blue);
    color: white;
    cursor: pointer;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    font-size: 20px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    transition: background-color 0.3s, transform 0.2s, opacity 0.3s;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0;
}

#back-to-top:hover {
    background-color: #0082b3;
    transform: scale(1.1);
}

/* --- BOUTONS DE TRI MANUEL --- */
.manual-sort-buttons button {
    background: transparent;
    border: 1px solid #dcdcdc;
    border-radius: 6px;
    color: var(--grey);
    cursor: pointer;
    padding: 6px 10px;
    font-size: 1.1em;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.manual-sort-buttons button.favori:hover { background: #f1c40f; color: white; border-color: #f1c40f; }
.manual-sort-buttons button.test:hover { background: var(--grey); color: white; border-color: var(--grey); }
.manual-sort-buttons button.promo:hover { background: var(--green); color: white; border-color: var(--green); }
.manual-sort-buttons button.read:hover { background: var(--green); color: white; border-color: var(--green); }
.manual-sort-buttons button.summary:hover { background: var(--blue); color: white; border-color: var(--blue); }
.manual-sort-buttons button.ai-queue:hover { background: var(--blue); color: white; border-color: var(--blue); }
.manual-sort-buttons button.share:hover { background: var(--blue); color: white; border-color: var(--blue); }

/* --- TABLEAU DE BORD --- */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
    margin-top: 20px;
}

.dash-card {
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    border-bottom: 4px solid var(--grey);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.dash-card:hover { transform: translateY(-3px); }

.dash-card:nth-child(1), .dash-card:nth-child(2), .dash-card:nth-child(3) { border-bottom-color: var(--blue); }
.dash-card.promo { border-bottom-color: var(--green); }
.dash-card.test { border-bottom-color: var(--grey); }
.dash-card.read { border-bottom-color: var(--green); }
.dash-card.favoris { border-bottom-color: #f1c40f; }

.dash-card i { font-size: 2em; color: var(--grey); margin-bottom: 10px; }
.dash-card.promo i { color: var(--green); }
.dash-card.read i { color: var(--green); }

.dash-card span { font-size: 2.5em; font-weight: bold; color: #333; line-height: 1; margin-bottom: 5px; font-family: 'Trebuchet MS', sans-serif; }
.dash-card p { margin: 0; color: var(--grey); font-size: 0.9em; text-transform: uppercase; font-weight: bold; letter-spacing: 0.5px; }

.dashboard-footer {
    background: #f8f9fa;
    padding: 15px 20px;
    border-radius: 8px;
    border: 1px solid #eee;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 15px;
    font-family: 'Trebuchet MS', sans-serif;
}
.dashboard-footer p { margin: 0; color: #555; display: flex; align-items: center; gap: 8px; }
.dashboard-footer strong { color: var(--blue); }

.summary-top-section {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 25px;
}

.summary-titles-wrapper {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.slider-container {
    position: relative;
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    border-radius: 8px;
    overflow: hidden;
    background: #f0f0f0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    border: 1px solid #eee;
}

.slider-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none; 
    -ms-overflow-style: none;  
}
.slider-wrapper::-webkit-scrollbar {
    display: none; 
}

.slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
    aspect-ratio: 1 / 1; 
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
}

.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
}

.slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.8);
    color: var(--blue);
    border: none;
    border-radius: 50%;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    opacity: 0; 
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.slider-container:hover .slider-btn { opacity: 1; }
.slider-btn:hover { background: var(--blue); color: white; }

.slider-btn.prev { left: 10px; }
.slider-btn.next { right: 10px; }

.article-card {
    display: flex;
    gap: 20px;
    background: #fff;
    padding: 15px;
    margin-bottom: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    font-family: 'Trebuchet MS', sans-serif;
}

.article-title-mobile { display: none; } 

.article-title-desktop {
    color: var(--blue);
    text-decoration: none;
    font-size: 1.15em;
    font-weight: bold;
}

.article-image-container { flex-shrink: 0; }
.article-image-container img, .article-image-container .img-placeholder {
    width: 200px;
    height: 140px;
    object-fit: cover;
    border-radius: 5px;
}
.article-image-container .img-placeholder {
    background: #f5f5f5; display: flex; align-items: center; justify-content: center; color: var(--grey);
}

.article-main-content {
    flex: 1; display: flex; flex-direction: column; min-width: 0;
}

.article-meta {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; line-height: 1.4;
    margin-bottom: 12px; border-bottom: 1px dashed var(--grey); padding-bottom: 10px;
}
.article-date { margin-left: auto; color: var(--grey); font-size: 0.85em; white-space: nowrap; }
.article-desc { margin: 0 0 15px 0; font-size: 0.9em; color: #555; line-height: 1.5; }
.article-actions { display: flex; justify-content: space-between; align-items: flex-end; margin-top: auto; padding-top: 10px; }

/* ==========================================
   SUJETS EN ATTENTE : RESPONSIVE
   ========================================== */
.queue-summary {
    display: flex; align-items: center; justify-content: space-between; padding: 15px; cursor: pointer;
}
.queue-summary-info { display: flex; align-items: center; gap: 15px; }
.queue-subject-details { display: flex; flex-direction: column; }
.queue-subject-title { font-size: 1.1em; font-weight: bold; color: var(--blue); display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.queue-subject-title::first-letter { text-transform: uppercase; }
.queue-subject-title-text { min-width: 0; }
.queue-subject-rename {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    padding: 0;
    border: 1px solid rgba(0,163,224,.22);
    border-radius: 8px;
    background: rgba(255,255,255,.72);
    color: var(--blue);
    cursor: pointer;
    font-size: .78rem;
}
.queue-subject-rename:hover,
.queue-subject-rename:focus-visible {
    background: rgba(0,163,224,.10);
    border-color: rgba(0,163,224,.45);
    outline: none;
}
.queue-subject-meta { font-size: 0.8em; color: var(--grey); font-weight: normal; margin-top: 3px; }
.queue-summary-actions { display: flex; gap: 10px; align-items: center; }

@media (max-width: 767px) {
    .article-card { flex-direction: column; gap: 15px; }
    
    .article-title-mobile { display: block; margin: 0 0 10px 0; font-size: 1.2em; line-height: 1.3; }
    .article-title-mobile a { color: var(--blue); text-decoration: none; }
    
    .article-title-desktop, .desktop-separator { display: none; } 
    
    .article-image-container img, .article-image-container .img-placeholder {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1; 
    }
    
    .article-meta { margin-bottom: 10px; padding-bottom: 5px; }
    .article-date { margin-left: 0; } 
    
    .queue-summary { flex-direction: column; align-items: flex-start; gap: 15px; }
    .queue-summary-actions { 
        width: 100%; 
        justify-content: center; 
        position: relative; 
        flex-wrap: wrap; 
    }
    .queue-chevron {
        position: static;
        transform: none;
        flex: 0 0 100%;
        width: 100%;
        margin: 2px 0 0;
        text-align: center;
        line-height: 1;
        pointer-events: none;
    }
}

/* ==========================================
   BOUTONS SOUS-MENU ET MODE STORY
   ========================================== */
.sub-nav-actions {
    margin-left: auto; 
    display: flex; 
    gap: 8px;
}


.btn-story-mode {
    display: none; 
    background-color: #f39c12; 
    color: white;
    padding: 8px 15px;
    border-radius: 5px;
}

/* ==========================================
   DESIGN DE LA FENÊTRE STORY MODE
   ========================================== */
.story-overlay {
    position: fixed; 
    top: 0; left: 0; 
    width: 100vw; height: 100dvh; 
    background: #111; 
    z-index: 9999; 
    display: flex; 
    flex-direction: column;
    font-family: 'Trebuchet MS', sans-serif;
    overflow: hidden; 
}

.story-close {
    position: absolute; 
    top: 15px; right: 15px; 
    background: rgba(0,0,0,0.6); 
    border: none; color: white; 
    font-size: 24px; width: 40px; height: 40px; 
    border-radius: 50%; cursor: pointer; z-index: 10001;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    padding: 0; 
}

.story-favorite {
    position: absolute; 
    top: 15px; left: 15px; 
    background: rgba(0,0,0,0.6); 
    border: none; color: white; 
    font-size: 20px; width: 40px; height: 40px; 
    border-radius: 50%; cursor: pointer; z-index: 10001;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    padding: 0; 
    transition: color 0.3s;
}

.story-favorite:hover {
    color: #f1c40f;
}

.story-share {
    position: absolute; 
    top: 65px; /* Modifié : on descend le bouton */
    left: 15px; /* Modifié : aligné à gauche */
    background: rgba(0,0,0,0.6); 
    border: none; color: white; 
    font-size: 18px; width: 40px; height: 40px; 
    border-radius: 50%; cursor: pointer; z-index: 10001;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    padding: 0; 
    transition: color 0.3s, background 0.3s;
}

.story-share:hover {
    color: var(--blue);
}

.story-undo {
    position: absolute; 
    top: 115px; /* Modifié : on descend encore plus */
    left: 15px; /* Modifié : aligné à gauche */
    background: rgba(0,0,0,0.6); 
    border: none; color: white; 
    font-size: 18px; width: 40px; height: 40px; 
    border-radius: 50%; cursor: pointer; z-index: 10001;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    padding: 0; 
    transition: color 0.3s, background 0.3s;
}

.story-undo:hover {
    color: #e74c3c;
}

.story-counter {
    position: absolute; 
    top: 15px; 
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.6); 
    color: white; 
    font-size: 0.85em; 
    padding: 5px 12px; 
    border-radius: 15px; 
    z-index: 10001;
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: bold;
}

.story-progress-container {
    position: absolute;
    top: 7px;
    left: 12px;
    right: 12px;
    height: 5px;
    z-index: 10001;
}
.story-progress-track {
    width: 100%;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .24);
    box-shadow: 0 1px 5px rgba(0, 0, 0, .18);
}
.story-progress-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #00A3E0, #73C92D);
    transition: width .24s ease;
}
.story-counter span {
    opacity: .72;
    font-size: .78em;
    font-weight: 700;
}
.story-loading {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #fff;
    font-weight: 700;
}
.story-loading i { font-size: 1.7rem; }

.story-content {
    flex: 1; position: relative; display: flex; flex-direction: column; color: white; overflow: hidden; width: 100%;
}

.story-image {
    width: 100%; height: 45vh; object-fit: cover; border-radius: 0 0 20px 20px;
    background: #222; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

.story-text-container {
    padding: 20px; flex: 1; overflow-y: auto; overflow-x: hidden; padding-bottom: 90px; 
    width: 100%; box-sizing: border-box; word-wrap: break-word; 
}

.story-meta { font-size: 0.85em; color: #aaa; margin-bottom: 10px; display: flex; align-items: center; gap: 8px;}
.story-title { font-size: 1.4em; font-weight: bold; margin: 0 0 15px 0; line-height: 1.3; }
.story-title a { color: white; text-decoration: none; }
.story-desc { font-size: 1em; line-height: 1.6; color: #ddd; text-align: justify; }

.story-actions {
    position: absolute; bottom: 0; left: 0; width: 100%; padding: 15px; 
    display: flex; justify-content: space-between; gap: 10px; 
    background: linear-gradient(transparent, rgba(0,0,0,0.95)); z-index: 10000;
    box-sizing: border-box; 
}

.btn-story {
    flex: 1; border: none; padding: 12px 5px; border-radius: 8px; color: white; font-weight: bold; 
    cursor: pointer; font-size: 0.85em; display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.btn-story.ai-queue { background-color: var(--blue); }
.btn-story.test { background-color: var(--grey); }
.btn-story.promo { background-color: var(--green); }
.btn-story.read { background-color: var(--green); }

/* ==========================================
   MENU DÉROULANT MOBILE (TABS)
   ========================================== */
.mobile-tabs { display: none; margin-bottom: 20px; }
.mobile-tabs select {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid var(--blue);
    border-radius: 8px;
    font-size: 1.1em;
    color: var(--blue);
    font-weight: bold;
    background-color: white;
    font-family: 'Trebuchet MS', sans-serif;
    appearance: none; 
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300A3E0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 15px;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.mobile-tabs select:focus { outline: none; border-color: var(--green); }

/* CSS additionnel pour le Planificateur (Drag & Drop) */
.planner-drop-zone { transition: border-color 0.3s, background-color 0.3s; }
.planner-item { background: white; border: 1px solid #eee; border-left: 4px solid var(--blue); border-radius: 8px; padding: 12px; cursor: grab; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 10px; }
.planner-item:active { cursor: grabbing; }
.planner-item.dragging { opacity: 0.5; }
.planner-day-title { margin-top: 0; margin-bottom: 10px; color: var(--blue); display: flex; align-items: center; justify-content: space-between; }

@media (max-width: 767px) {
    .btn-story-mode { display: inline-flex; align-items: center; justify-content: center; }
    .desktop-tabs { display: none !important; }
    .mobile-tabs { display: block; }
}

@media (min-width: 768px) {
    .summary-top-section {
        flex-direction: row; 
        align-items: stretch;
    }
    
    .slider-container {
        margin: 0;
        width: 250px; 
        flex-shrink: 0;
    }
}

@media (max-width: 600px) { 

	.input-group { 
		flex-direction: column;
	}
	
	.titre-item {
		flex-direction: column;
		align-items: flex-start; 
	}

	.rss-card {
        flex-direction: column;
    }
    .rss-image {
        width: 100%;
        height: 180px;
    }
}

/* === Styles déplacés depuis index.php === */


/* === Styles déplacés depuis admin.php === */


/* ==========================================================
   CHARTE CEG.GY / COMPARATEUR DE CODE
   ========================================================== */
:root {
    --blue: #00A3E0;
    --green: #73C92D;
    --grey: #91999F;
    --text: #263238;
    --muted: #68757d;
    --surface: rgba(255, 255, 255, .92);
    --surface-soft: rgba(255, 255, 255, .72);
    --border: rgba(145, 153, 159, .24);
    --shadow: 0 18px 50px rgba(32, 67, 82, .10);
    --radius-xl: 26px;
    --radius-lg: 18px;
    --radius-md: 14px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
    min-height: 100vh;
    margin: 0;
    padding: 28px 18px 18px;
    overflow-x: hidden;
    isolation: isolate;
    display: block;
    font-family: "Trebuchet MS", Arial, sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at 12% 10%, rgba(0, 163, 224, .34) 0, rgba(0, 163, 224, 0) 32%),
        radial-gradient(circle at 88% 12%, rgba(115, 201, 45, .26) 0, rgba(115, 201, 45, 0) 29%),
        radial-gradient(circle at 82% 86%, rgba(0, 163, 224, .17) 0, rgba(0, 163, 224, 0) 27%),
        radial-gradient(circle at 18% 88%, rgba(115, 201, 45, .13) 0, rgba(115, 201, 45, 0) 24%),
        linear-gradient(145deg, #EEF9FC 0%, #F8FBFC 42%, #F1F8F1 100%);
    background-attachment: fixed;
}
body::before,
body::after {
    position: fixed;
    z-index: -1;
    border-radius: 50%;
    filter: blur(12px);
    pointer-events: none;
    content: "";
    will-change: transform, opacity;
}
body::before {
    top: 11vh;
    left: -90px;
    width: 260px;
    height: 260px;
    background: rgba(0, 163, 224, .12);
    animation: ambientBlueFloat 18s cubic-bezier(.45, 0, .55, 1) infinite alternate;
}
body::after {
    right: -80px;
    bottom: 8vh;
    width: 220px;
    height: 220px;
    background: rgba(115, 201, 45, .12);
    animation: ambientGreenFloat 21s cubic-bezier(.45, 0, .55, 1) -6s infinite alternate;
}
@keyframes ambientBlueFloat {
    0% { transform: translate3d(-30px, -25px, 0) scale(.82); opacity: .72; }
    25% { transform: translate3d(70px, 30px, 0) scale(1.10); opacity: 1; }
    52% { transform: translate3d(165px, -15px, 0) scale(1.30); opacity: .86; }
    76% { transform: translate3d(75px, 85px, 0) scale(.94); opacity: .95; }
    100% { transform: translate3d(210px, 35px, 0) scale(1.22); opacity: .78; }
}
@keyframes ambientGreenFloat {
    0% { transform: translate3d(30px, 25px, 0) scale(.88); opacity: .70; }
    24% { transform: translate3d(-90px, -35px, 0) scale(1.18); opacity: .96; }
    50% { transform: translate3d(-185px, 20px, 0) scale(1.34); opacity: .82; }
    74% { transform: translate3d(-70px, -95px, 0) scale(.92); opacity: 1; }
    100% { transform: translate3d(-225px, -30px, 0) scale(1.24); opacity: .76; }
}

.container,
.app-shell {
    width: min(1440px, 100%);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.app-header {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 150px;
    padding: 28px 30px;
    margin-bottom: 20px;
    border: 1px solid rgba(255,255,255,.52);
    border-radius: var(--radius-xl);
    color: #fff;
    background: linear-gradient(120deg, #008CC5 0%, #00A3E0 38%, #4EBF70 72%, #73C92D 100%);
    box-shadow: 0 22px 50px rgba(0, 124, 175, .20);
}
.app-header::after {
    content: "";
    position: absolute;
    width: 230px;
    height: 230px;
    right: -72px;
    bottom: -118px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
}
.header-main { position: relative; z-index: 1; display: flex; align-items: center; gap: 20px; min-width: 0; }
.brand-icon {
    display: grid;
    place-items: center;
    flex: 0 0 60px;
    width: 60px;
    height: 60px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 18px;
    background: rgba(255,255,255,.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.26);
    font-size: 25px;
}
.header-copy h1 { margin: 0; color: #fff; text-align: left; font-size: clamp(1.65rem, 2.4vw, 2.35rem); line-height: 1.08; }
.header-copy p { margin: 8px 0 0; max-width: 760px; color: rgba(255,255,255,.91); font-size: .98rem; line-height: 1.5; }
.header-actions { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; }
.icon-button {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 14px;
    color: #fff;
    background: rgba(255,255,255,.14);
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.icon-button:hover { transform: translateY(-2px); background: rgba(255,255,255,.24); box-shadow: 0 8px 18px rgba(0,0,0,.10); opacity: 1; }
.icon-button.is-muted { opacity: .7; }

.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 10px 30px rgba(32,67,82,.06);
}
.tab-btn {
    min-height: 44px;
    padding: 10px 16px;
    margin: 0;
    border: 0;
    border-radius: 12px;
    color: #657078;
    background: transparent;
    font-size: .96rem;
}
.tab-btn:hover { color: var(--blue); background: rgba(0,163,224,.08); opacity: 1; }
.tab-btn.active { margin: 0; color: #fff; background: linear-gradient(110deg, var(--blue), #1eb0c5 58%, var(--green)); box-shadow: 0 8px 20px rgba(0,163,224,.18); }

.tab-content {
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
    backdrop-filter: blur(10px);
}
.tab-content.active { display: block; }

.sub-nav { gap: 6px; margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }
.sub-btn { min-height: 40px; padding: 8px 12px; border-radius: 10px; }
.sub-btn.active { color: #fff; background: var(--blue); border-bottom-color: transparent; }
.sub-nav-actions { margin-left: auto; }

.dashboard-grid { gap: 14px; }
.dash-card {
    min-height: 142px;
    border: 1px solid var(--border);
    border-bottom: 4px solid var(--blue);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(32,67,82,.07);
}
.dash-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(32,67,82,.11); }

.admin-section,
.result-card,
details.history-card,
.queue-section {
    border-color: var(--border);
    border-radius: var(--radius-md);
    background: #fff;
    box-shadow: 0 10px 28px rgba(32,67,82,.06);
}
input, select, textarea { font-family: "Trebuchet MS", Arial, sans-serif; }
input[type="text"], input[type="email"], input[type="password"], input[type="url"], input[type="file"], select, textarea {
    min-height: 44px;
    border: 1px solid rgba(145,153,159,.55);
    border-radius: 10px;
    background: rgba(255,255,255,.94);
    transition: border-color .2s ease, box-shadow .2s ease;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,163,224,.12); }
button { border-radius: 10px; transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease; }
button:hover { transform: translateY(-1px); opacity: .92; }

.alert-success { padding: 14px 16px; margin-bottom: 20px; border-radius: 12px; color: #fff; background: var(--green); font-weight: 700; text-align: center; }

.accent-blue { border-left: 4px solid var(--blue) !important; }
.accent-green { border-left: 4px solid var(--green) !important; }
.accent-grey { border-left: 4px solid var(--grey) !important; }
.accent-yellow { border-left: 4px solid #f1c40f !important; }
.accent-dark-grey { border-left: 4px solid #6c757d !important; }
.history-card.history-default { border-left-color: var(--blue) !important; }
.history-card.history-published { border-left-color: var(--green) !important; }
.history-card.history-pending { border-left-color: #f39c12 !important; }
.history-default .history-title { color: var(--blue); }
.history-published .history-title { color: var(--green); }
.history-pending .history-title { color: #f39c12; }
.log-card { border: 1px solid #eee; border-left-width: 4px; border-radius: 10px; background: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.02); }
.log-card.log-system { border-left-color: var(--grey); }
.log-card.log-ai { border-left-color: #9b59b6; }
.log-card.log-cron { border-left-color: var(--blue); }
.log-card.log-admin { border-left-color: var(--green); }
.log-type.log-system { color: var(--grey); }
.log-type.log-ai { color: #9b59b6; }
.log-type.log-cron { color: var(--blue); }
.log-type.log-admin { color: var(--green); }
.rss-table-row.is-disabled { opacity: .5; }
.planner-time-badge { color: var(--blue); font-weight: 700; font-size: .85em; margin-right: 10px; white-space: nowrap; }

.app-footer {
    width: min(1440px, 100%);
    margin: 18px auto 0;
    padding: 17px 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    color: #6f797f;
    background: rgba(255,255,255,.66);
    box-shadow: 0 10px 30px rgba(32,67,82,.06);
    text-align: center;
    font-size: .92rem;
    backdrop-filter: blur(8px);
}
.app-footer a { color: var(--blue); font-weight: 700; text-decoration: none; transition: color .2s ease; }
.app-footer a:hover { color: var(--green); }
.heart { display: inline-block; animation: heartBeat 1.45s ease-in-out infinite; transform-origin: center; }
@keyframes heartBeat { 0%, 100% { transform: scale(1); } 14% { transform: scale(1.16); } 28% { transform: scale(1); } 42% { transform: scale(1.12); } 70% { transform: scale(1); } }

@media (max-width: 760px) {
    body { padding: 12px 10px; }
    .app-header { min-height: 132px; padding: 22px 18px; align-items: flex-start; }
    .brand-icon { flex-basis: 52px; width: 52px; height: 52px; border-radius: 16px; }
    .header-main { gap: 14px; }
    .header-copy p { font-size: .9rem; }
    .header-actions { align-self: flex-start; }
    .tab-content { padding: 15px; }
    .app-footer { margin-top: 12px; }
}


/* === Utilitaires générés lors de la suppression des attributs style= === */
.u-style-001 { background-color: #00A3E0; color: white; padding: 2px 8px; border-radius: 12px; font-size: 0.8em; margin-left: 5px; }
.u-style-002 { display: none; }
.u-style-003 { color: var(--blue); }
.u-style-004 { border-bottom-color: var(--blue); }
.u-style-005 { color: #f1c40f; }
.u-style-006 { background-color: #dc3545; color: white; padding: 8px 15px; border-radius: 5px; }
.u-style-007 { display: flex; gap: 15px; margin-bottom: 20px; flex-wrap: wrap; align-items: center; }
.u-style-008 { position: relative; flex: 2; min-width: 200px; }
.u-style-009 { width: 100%; padding: 10px 30px 10px 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; box-sizing: border-box; }
.u-style-010 { position: absolute; right: 10px; top: 12px; color: var(--grey); cursor: pointer; }
.u-style-011 { flex: 1; min-width: 150px; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
.u-style-012 { flex: 1; min-width: 200px; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
.u-style-013 { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
.u-style-014 { flex: 1; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
.u-style-015 { display: none; background-color: var(--blue); color: white; border: none; padding: 10px 15px; border-radius: 5px; cursor: pointer; font-family: 'Trebuchet MS', sans-serif; font-weight: bold; }
.u-style-016 { background-color: #dc3545; color: white; border: none; padding: 10px 15px; border-radius: 5px; cursor: pointer; }
.u-style-017 { background: #fff; padding: 15px; border-radius: 8px; border-left: 4px solid #73C92D; box-shadow: 0 2px 5px rgba(0,0,0,0.05); margin-bottom: 20px; }
.u-style-018 { margin-top: 0; color: #00A3E0; font-family: 'Trebuchet MS', sans-serif; }
.u-style-019 { display: flex; gap: 10px; flex-wrap: wrap; }
.u-style-020 { flex: 1; min-width: 250px; padding: 10px; border: 1px solid #91999F; border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; }
.u-style-021 { background-color: #73C92D; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-family: 'Trebuchet MS', sans-serif; font-weight: bold; }
.u-style-022 { color: var(--blue); margin-top: 25px; margin-bottom: 15px; border-bottom: 1px dashed var(--grey); padding-bottom: 10px; }
.u-style-023 { display: none; width: 100%; padding: 12px; margin-top: 15px; background: #f8f9fa; border: 1px dashed var(--grey); color: var(--blue); font-weight: bold; border-radius: 8px; cursor: pointer; font-family: 'Trebuchet MS', sans-serif; }
.u-style-024 { display: none; text-align: center; margin-top: 20px; color: #00A3E0; font-family: 'Trebuchet MS', sans-serif; }
.u-style-025 { margin-top: 20px; }
.u-style-026 { position: relative; margin-bottom: 20px; }
.u-style-027 { width: 100%; padding: 10px 30px 10px 10px; border: 1px solid var(--grey); border-radius: 5px; box-sizing: border-box; font-family: 'Trebuchet MS', sans-serif; }
.u-style-028 { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 15px; }
.u-style-029 { flex: 1; min-width: 250px; background: #f8f9fa; border-radius: 8px; padding: 15px; border: 1px solid #eee; }
.u-style-030 { margin-top:0; color: var(--grey); text-align: center; }
.u-style-031 { min-height: 500px; display:flex; flex-direction:column; padding-bottom: 30px; }
.u-style-032 { flex: 2; min-width: 350px; }
.u-style-033 { margin-top:0; color: var(--blue); text-align: center; }
.u-style-034 { margin-bottom: 25px; background: rgba(0, 163, 224, 0.05); border: 2px dashed #b3e5fc; border-radius: 8px; padding: 15px; }
.u-style-035 { min-height: 80px; display:flex; flex-direction:column; }
.u-style-036 { flex: 1; min-width: 250px; background: rgba(115, 201, 45, 0.05); border-radius: 8px; padding: 15px; border: 1px solid rgba(115, 201, 45, 0.2); }
.u-style-037 { margin-top:0; color: var(--green); text-align: center; }
.u-style-038 { max-width: 450px; }
.u-style-039 { margin-top: 0; color: #dc3545; }
.u-style-040 { color: var(--grey); font-size: 0.9em; }
.u-style-041 { margin-top: 15px; }
.u-style-042 { font-weight: bold; display: block; margin-bottom: 5px; color: var(--blue); }
.u-style-043 { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; box-sizing: border-box; }
.u-style-044 { font-weight: bold; display: block; margin-bottom: 10px; color: var(--blue); }
.u-style-045 { display: flex; flex-direction: column; gap: 10px; background: #f8f9fa; padding: 15px; border-radius: 5px; border: 1px solid #eee; }
.u-style-046 { cursor: pointer; display: flex; align-items: center; gap: 8px; }
.u-style-047 { width: 16px; height: 16px; }
.u-style-048 { color: var(--grey); }
.u-style-049 { color: var(--green); }
.u-style-050 { width: 100%; background-color: #dc3545; color: white; border: none; padding: 12px; border-radius: 5px; margin-top: 20px; font-weight: bold; cursor: pointer; font-family: 'Trebuchet MS', sans-serif; }
.u-style-051 { max-width: 800px; max-height: 90vh; overflow-y: auto; background-color: #f8f9fa; }
.u-style-052 { margin-top: 0; color: var(--blue); }
.u-style-053 { background: white; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); border-left: 4px solid var(--blue); padding: 20px; }
.u-style-054 { color: var(--grey); margin-top: 0; margin-bottom: 20px; font-style: italic; }
.u-style-055 { width: 100%; margin-top: 25px; }
.u-style-056 { display: none; background: white; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); border-left: 4px solid var(--blue); padding: 20px; }
.u-style-057 { display: flex; gap: 15px; margin-bottom: 15px; flex-wrap: wrap; }
.u-style-058 { flex: 1; min-width: 200px; }
.u-style-059 { flex: 3; min-width: 300px; }
.u-style-060 { font-weight: bold; color: var(--blue); display: block; margin-bottom: 5px; }
.u-style-061 { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; font-size: 1.1em; box-sizing: border-box; }
.u-style-062 { display: flex; gap: 15px; margin-top: 15px; background: #fcfcfc; padding: 15px; border-radius: 5px; border: 1px dashed #ccc; }
.u-style-063 { flex: 1; }
.u-style-064 { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; box-sizing: border-box; }
.u-style-065 { font-weight: bold; color: var(--blue); display: block; margin-bottom: 5px; margin-top: 15px; }
.u-style-066 { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; height: 100px; box-sizing: border-box; resize: vertical; }
.u-style-067 { width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; height: 250px; box-sizing: border-box; resize: vertical; }
.u-style-068 { display: flex; gap: 10px; margin-bottom: 10px; }
.u-style-069 { flex: 1; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; }
.u-style-070 { background: var(--green); margin: 0; }
.u-style-071 { display: flex; flex-wrap: wrap; gap: 8px; min-height: 40px; padding: 10px; background: #fcfcfc; border: 1px solid #eee; border-radius: 5px; margin-bottom: 10px; }
.u-style-072 { display: flex; gap: 10px; margin-top: 25px; }
.u-style-073 { background: var(--grey); padding: 12px 20px; }
.u-style-074 { margin: 0; flex: 1; }
.u-style-075 { color: var(--blue); margin-top: 0; }
.u-style-076 { border: 0; border-top: 1px dashed var(--grey); margin: 25px 0; }
.u-style-077 { margin-top: 0; margin-bottom: 15px; color: var(--blue); }
.u-style-078 { display: flex; gap: 15px; flex-wrap: wrap; }
.u-style-079 { color: var(--grey); display: block; }
.u-style-080 { margin-bottom: 15px; color: var(--blue); }
.u-style-081 { margin-bottom: 15px; border-color: var(--blue); }
.u-style-082 { color: var(--grey); display: block; margin-bottom: 8px; }
.u-style-083 { color: var(--grey); margin-top: 5px; display: block; }
.u-style-084 { border-left-color: var(--green); }
.u-style-085 { color: var(--green); margin-top: 0; }
.u-style-086 { display: flex; gap: 15px; flex-wrap: wrap; align-items: flex-start; }
.u-style-087 { flex: 1; min-width: 150px; margin-bottom: 0; }
.u-style-088 { display: none; margin-top: 8px; }
.u-style-089 { flex: 2; min-width: 200px; margin-bottom: 0; }
.u-style-090 { display: flex; gap: 10px; align-items: flex-end; margin-top: 25px; width: 100%; }
.u-style-091 { margin: 0; width: auto; flex: 1; }
.u-style-092 { background: var(--grey); margin: 0; display: none; padding: 12px 20px; }
.u-style-093 { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed var(--blue); padding-bottom: 10px; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.u-style-094 { margin: 0; color: var(--blue); }
.u-style-095 { background-color: var(--blue); padding: 10px 15px; }
.u-style-096 { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); margin-bottom: 20px; }
.u-style-097 { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; flex-wrap: wrap; }
.u-style-098 { font-weight: bold; color: var(--grey); }
.u-style-099 { flex: 1; min-width: 200px; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; font-family: 'Trebuchet MS', sans-serif; cursor: pointer; }
.u-style-100 { position: relative; height: 350px; width: 100%; max-width: 100%; }
.u-style-101 { background-color: #dc3545; padding: 10px 15px; margin: 0; }
.u-style-102 { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; align-items: stretch; }
.u-style-103 { flex: 2; min-width: 200px; display: flex; gap: 10px; }
.u-style-104 { flex: 1; width: 100%; padding: 10px; border: 1px solid var(--grey); border-radius: 5px; box-sizing: border-box; font-family: 'Trebuchet MS', sans-serif; }
.u-style-105 { background: var(--blue); margin: 0; padding: 0 15px; border-radius: 5px; }
.u-style-106 { display: flex; flex-direction: column; gap: 10px; }
.u-style-107 { height: auto; max-height: 90vh; }
.u-style-108 { margin-top: 25px; }
.u-style-109 { background: var(--blue); }
.u-style-110 { border: 0; border-top: 1px dashed #ccc; margin: 25px 0; }
.u-style-111 { display:block; margin-bottom: 10px; font-weight:bold; color: var(--blue); }
.u-style-112 { margin-bottom: 15px; width: 100%; border: 1px solid var(--grey); padding: 10px; border-radius: 5px; box-sizing: border-box; }
.u-style-113 { background-color: var(--green); }
.u-style-114 { overflow-y: auto; flex: 1; margin-top: 15px; padding-right: 10px; width: 100%; }
.u-style-115 { color:#555; }
.u-style-116 { width: 14px; height: 14px; }
.u-style-117 { margin: 0 0 15px 0; line-height: 1.3; }
.u-style-118 { color: var(--blue); text-decoration: none; display: inline-flex; align-items: baseline; gap: 8px; pointer-events: auto; }
.u-style-119 { font-size: 0.6em; }
.u-style-120 { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.u-style-121 { background-color: rgba(115, 201, 45, 0.1); color: var(--green); padding: 4px 10px; border-radius: 12px; font-size: 0.8em; font-weight: bold; border: 1px solid rgba(115, 201, 45, 0.3); }
.u-style-122 { font-size: 0.9em; }
.u-style-123 { display: flex; gap: 8px; }
.u-style-124 { color: var(--grey); text-align: center; font-style: italic; }
.u-style-125 { height: 100vh; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--grey); }
.u-style-126 { font-size: 1.3em; font-weight: bold; margin-top: 15px; }
.u-style-127 { text-align: center; color: var(--grey); padding: 20px; }
.u-style-128 { width: 18px; height: 18px; cursor: pointer; accent-color: var(--blue); }
.u-style-129 { background-color: var(--green); margin:0; }
.u-style-130 { background-color: #f39c12; margin:0; }
.u-style-131 { background-color: #dc3545; margin:0; }
.u-style-132 { background-color: #fcfcfc; padding: 15px; border-top: 1px solid #eee; }
.u-style-133 { display: flex; flex-direction: column; gap: 12px; }
.u-style-134 { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; padding-top: 8px; justify-content: flex-end; }
.u-style-135 { cursor: pointer; background-color: rgba(0, 163, 224, 0.1); color: var(--blue); padding: 3px 8px; border-radius: 10px; font-size: 0.75em; font-weight: bold; border: 1px solid rgba(0, 163, 224, 0.2); transition: background-color 0.2s; }
.u-style-136 { position: relative; border-left: 4px solid var(--grey); }
.u-style-138 { padding-right: 20px; }
.u-style-139 { justify-content: flex-end; }
.u-style-140 { display: block; color: var(--blue); margin-top: 20px; margin-bottom: 10px; font-size: 1.1em; }
.u-style-141 { display: block; color: var(--blue); margin-top: 20px; margin-bottom: 10px; font-size: 1.2em; }
.u-style-142 { margin-top: 10px; margin-bottom: 25px; padding-left: 20px; line-height: 1.6; }
.u-style-143 { text-align: justify; line-height: 1.7; margin-bottom: 25px; }
.u-style-144 { color: var(--blue); text-decoration: none; }
.u-style-145 { margin-bottom: 0; }
.u-style-146 { margin-top: 5px; }
.u-style-147 { margin-left: 0; margin-bottom: 15px; }
.u-style-148 { color: var(--blue); font-weight: 500; }
.u-style-149 { background: var(--blue); margin-bottom: 15px; }
.u-style-150 { border-top: 1px solid #eee; padding-top: 15px; margin-top: 15px; }
.u-style-151 { font-weight: bold; color: var(--blue); margin-top: 0; margin-bottom: 10px; }
.u-style-152 { margin-bottom: 10px; }
.u-style-153 { margin-top: 20px; border-top: 1px dashed var(--grey); padding-top: 15px; }
.u-style-154 { color: var(--blue); font-weight: bold; }
.u-style-155 { width: 100%; box-sizing: border-box; border: 1px solid var(--grey); border-radius: 5px; padding: 10px; font-family: 'Trebuchet MS', sans-serif; }
.u-style-156 { display: flex; gap: 10px; margin-top: 15px; flex-wrap: wrap; }
.u-style-157 { background: var(--blue); margin: 0; width: fit-content; }
.u-style-158 { background: #dc3545; color: white; border: none; padding: 8px 15px; border-radius: 5px; cursor: pointer; margin: 0; width: fit-content; font-family: 'Trebuchet MS', sans-serif; }
.u-style-159 { font-family: 'Trebuchet MS', sans-serif; }
.u-style-160 { display: flex; align-items: center; justify-content: space-between; padding: 15px; cursor: pointer; }
.u-style-161 { display: flex; align-items: center; gap: 15px; }
.u-style-162 { display: flex; flex-direction: column; }
.u-style-163 { font-size: 0.8em; color: var(--grey); margin-top: 5px; font-weight: normal; }
.u-style-164 { display: flex; gap: 10px; align-items: center; }
.u-style-165 { color: var(--grey); margin-left:10px; }
.u-style-166 { padding: 15px; border-top: 1px solid #eee; }
.u-style-167 { color: red; text-align: center; padding: 20px; background: #fff; border-radius: 8px; border: 1px solid red; }
.u-style-168 { text-align: center; color: var(--grey); font-style: italic; }
.u-style-169 { color: red; text-align: center; }
.u-style-170 { background-color: rgba(115, 201, 45, 0.1); color: var(--green); padding: 6px 12px; border-radius: 15px; font-size: 0.9em; font-weight: bold; border: 1px solid rgba(115, 201, 45, 0.3); display: flex; align-items: center; gap: 8px; }
.u-style-171 { cursor: pointer; color: #dc3545; }
.u-style-172 { margin-bottom: 25px; }
.u-style-173 { color: var(--blue); font-weight: bold; margin-top: 0; }
.u-style-174 { display: flex; align-items: center; gap: 12px; cursor: pointer; margin-bottom: 10px; padding: 12px 15px; border: 1px solid #eee; border-radius: 5px; background: #f8f9fa; transition: border-color 0.2s; }
.u-style-175 { accent-color: var(--blue); transform: scale(1.3); margin: 0; }
.u-style-176 { flex: 1; font-weight: 500; }
.u-style-177 { display: block; cursor: pointer; margin-bottom: 12px; padding: 15px; border: 1px solid #eee; border-radius: 5px; background: #f8f9fa; transition: border-color 0.2s; }
.u-style-178 { display: flex; gap: 12px; align-items: flex-start; }
.u-style-179 { accent-color: var(--green); transform: scale(1.3); margin-top: 5px; }
.u-style-180 { margin-top: 8px; }
.u-style-181 { color:var(--blue); margin-top: 20px; }
.u-style-182 { display: flex; gap: 10px; margin-bottom: 15px; }
.u-style-183 { flex: 1; padding: 10px 15px; border: 1px solid var(--grey); border-radius: 5px; font-family: inherit; }
.u-style-184 { background: var(--green); margin: 0; padding: 0 20px; }
.u-style-185 { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 25px; min-height: 40px; padding: 10px; background: #fcfcfc; border: 1px solid #eee; border-radius: 5px; }
.u-style-186 { color: var(--grey); font-style: italic; margin: 0; }
.u-style-187 { color:var(--blue); margin-top: 25px; }
.u-style-188 { margin-bottom: 15px; }
.u-style-189 { margin-left: 10px; color: var(--grey); font-size: 0.9em; font-weight: bold; }
.u-style-190 { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 10px; }
.u-style-191 { cursor: pointer; text-align: center; border: 2px solid transparent; border-radius: 5px; }
.u-style-192 { display:none; }
.u-style-193 { height: 100px; border-radius: 5px; border: 2px solid #ccc; }
.u-style-194 { color: var(--grey); font-style: italic; }
.u-style-195 { cursor: pointer; text-align: center; border: 2px solid var(--blue); border-radius: 5px; }
.u-style-196 { height: 100px; border-radius: 5px; border: 2px solid transparent; }
.u-style-197 { color: red; }
.u-style-198 { width: 100%; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.u-style-199 { width: 100%; height: 150px; background: #eee; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: #999; }
.u-style-200 { font-size:0.7em; color:#999; font-weight:normal; }
.u-style-201 { color: var(--grey); font-style: italic; text-align: center; }
.u-style-202 { color: var(--green); font-weight: bold; font-size: 0.85em; margin-right: 10px; white-space: nowrap; }
.u-style-203 { color: var(--blue); font-weight: bold; font-size: 0.85em; margin-right: 10px; white-space: nowrap; }
.u-style-204 { display: flex; align-items: center; overflow: hidden; flex: 1; }
.u-style-205 { margin: 0; color: var(--blue); font-size: 1em; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.u-style-206 { display: flex; gap: 5px; flex-shrink: 0; }
.u-style-207 { background: var(--blue); padding: 6px 10px; margin: 0; }
.u-style-208 { background: #dc3545; padding: 6px 10px; margin: 0; }
.u-style-209 { text-align: center; padding: 20px; color: var(--grey); }
.u-style-210 { background: #2b2b2b; color: #a9b7c6; padding: 15px; border-radius: 5px; overflow-x: auto; font-size: 0.85em; margin-top: 10px; font-family: monospace; }
.u-style-211 { background: #f8f9fa; padding: 10px; border-radius: 5px; margin-top: 10px; }
.u-style-212 { color: var(--grey); font-style: italic; font-size: 0.9em; margin-top: 10px; }
.u-style-213 { padding: 12px 15px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-weight: bold; color: #333; }
.u-style-214 { display: flex; align-items: center; gap: 12px; }
.u-style-215 { font-size: 0.8em; color: var(--grey); font-weight: normal; }
.u-style-216 { padding: 0 15px 15px 15px; border-top: 1px dashed #eee; }
.u-style-217 { text-align: center; padding: 40px; }
.u-style-218 { background: rgba(115, 201, 45, 0.1); border-left: 4px solid var(--green); padding: 15px; margin-bottom: 20px; word-break: break-word; }
.u-style-219 { margin: 0 0 10px 0; color: var(--green); }
.u-style-220 { margin: 5px 0; }
.u-style-221 { flex: 1; overflow-y: auto; border: 1px solid #eee; padding: 10px; }
.u-style-222 { list-style-type: none; padding: 0; margin: 0; }
.u-style-223 { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.u-style-224 { background-color: rgba(115, 201, 45, 0.1); color: var(--green); padding: 4px 10px; border-radius: 12px; font-size: 0.75em; }
.u-style-225 { margin-bottom: 10px; padding: 15px; background: #fcfcfc; border-left: 3px solid var(--blue); border-bottom: 1px solid #eee; word-break: break-word; }
.u-style-226 { color: var(--blue); text-decoration: none; font-weight: bold; }
.u-style-227 { margin: 5px 0; font-size: 0.85em; color: #555; }
.u-style-228 { background: rgba(255, 0, 0, 0.1); border-left: 4px solid red; padding: 20px; word-break: break-word; }
.u-style-229 { margin-bottom: 10px; border: 1px solid #eee; border-radius: 5px; background: #fff; box-sizing: border-box; }
.u-style-230 { padding: 12px 15px; border-bottom: 1px solid #eee; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
.u-style-231 { font-size: 1.1em; font-weight: bold; color: var(--blue); }
.u-style-232 { padding: 0; }
.u-style-233 { width: 100%; border-collapse: collapse; text-align: left; table-layout: fixed; }
.u-style-234 { padding-left: 15px; width: 60px; }
.u-style-235 { width: 250px; }
.u-style-236 { color: var(--grey); text-decoration: none; }
.u-style-237 { width: 205px; text-align: right; padding-right: 15px; white-space: nowrap; }
.rss-url-cell { min-width: 0; overflow: hidden; }
.rss-url-link { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-style-238 { background: var(--green); }
.u-style-239 { background: orange; }
.u-style-240 { background: red; }

.backup-toggle-input { margin-right: 10px; }

/* ==========================================================
   newsia - navigation fluide + pipeline central
   ========================================================== */
.tab-content.is-active-tab {
    display: block;
    animation: newsiaTabIn .16s ease-out;
}

@keyframes newsiaTabIn {
    from { opacity: .72; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

.pipeline-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid rgba(0, 163, 224, .18);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,251,253,.92));
    box-shadow: 0 12px 30px rgba(37, 63, 78, .08);
}

.pipeline-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    align-self: flex-start;
    text-align: left;
    margin-right: auto;
    gap: 8px;
    margin-bottom: 8px;
    color: var(--blue, #00A3E0);
    font-weight: 800;
    font-size: .88rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.pipeline-hero h2 {
    margin: 0 0 7px;
    color: #263238;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.pipeline-hero p {
    margin: 0;
    color: #68747a;
}









.pipeline-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 20px;
}

.pipeline-stat-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 13px 12px;
    border: 1px solid rgba(145,153,159,.18);
    border-radius: 15px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 7px 18px rgba(35, 57, 69, .05);
}

.pipeline-stat-icon {
    display: grid;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    background: rgba(0, 163, 224, .1);
    color: #00A3E0;
}

.pipeline-stat-card strong,
.pipeline-stat-card span,
.pipeline-stat-card small {
    display: block;
}

.pipeline-stat-card strong {
    color: #263238;
    font-size: 1.25rem;
    line-height: 1;
}

.pipeline-stat-card span {
    margin-top: 3px;
    color: #505d64;
    font-weight: 700;
    font-size: .82rem;
}

.pipeline-stat-card small {
    margin-top: 2px;
    color: #91999F;
    font-size: .68rem;
}

.pipeline-stat-arrow {
    position: absolute;
    right: -9px;
    z-index: 2;
    padding: 3px;
    background: #f9fcfc;
    color: #aab3b7;
    font-size: .72rem;
}

.pipeline-stage-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(0, 163, 224, .1);
    color: #008bbf;
    font-size: .72rem;
    font-weight: 800;
}

.stage-summary .pipeline-stage-badge { background: rgba(0,163,224,.1); color: #008bbf; }
.stage-draft .pipeline-stage-badge { background: rgba(145,153,159,.14); color: #6f787d; }
.stage-scheduled .pipeline-stage-badge { background: rgba(115,201,45,.12); color: #519e18; }
.stage-published .pipeline-stage-badge { background: rgba(115,201,45,.18); color: #3f8610; }

.pipeline-downstream-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 28px 0 12px;
}

.pipeline-downstream-heading h3 {
    margin: 0;
    color: #364349;
}

.pipeline-downstream {
    display: grid;
    gap: 9px;
}

.pipeline-subject-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(145,153,159,.18);
    border-radius: 14px;
    background: rgba(255,255,255,.88);
    color: inherit;
    text-align: left;
    font-family: "Trebuchet MS", Arial, sans-serif;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.pipeline-subject-card:hover {
    transform: translateY(-1px);
    border-color: rgba(0,163,224,.32);
    box-shadow: 0 8px 20px rgba(35,57,69,.07);
}

.pipeline-stage-icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 11px;
    background: rgba(0,163,224,.09);
    color: #00A3E0;
}

.pipeline-subject-copy {
    min-width: 0;
}

.pipeline-subject-copy strong,
.pipeline-subject-copy span,
.pipeline-subject-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pipeline-subject-copy strong { color: #263238; font-size: .94rem; }
.pipeline-subject-copy span { margin-top: 2px; color: #66737a; font-size: .82rem; }
.pipeline-subject-copy small { margin-top: 3px; color: #91999F; font-size: .72rem; }

.pipeline-empty {
    margin: 0;
    padding: 18px;
    border: 1px dashed rgba(145,153,159,.28);
    border-radius: 14px;
    background: rgba(255,255,255,.65);
    color: #778187;
    text-align: center;
}

.pipeline-empty.is-error {
    border-color: rgba(180, 60, 60, .22);
    color: #a43d3d;
}

.pipeline-publication-note,

.automation-mode-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 12px 0 16px;
}

.automation-mode-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px;
    border: 1px solid rgba(145,153,159,.22);
    border-radius: 14px;
    background: rgba(255,255,255,.82);
    cursor: pointer;
}

.automation-mode-card:has(input:checked) {
    border-color: rgba(0,163,224,.55);
    box-shadow: inset 0 0 0 1px rgba(0,163,224,.14);
}

.automation-mode-card input {
    margin-top: 3px;
    accent-color: #00A3E0;
}

.automation-mode-card strong,
.automation-mode-card small { display: block; }
.automation-mode-card strong { color: #344148; margin-bottom: 4px; }
.automation-mode-card small { color: #778187; line-height: 1.35; }

.automation-thresholds {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

@media (max-width: 1050px) {
    .pipeline-hero { flex-direction: column; }
    .pipeline-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pipeline-stat-arrow { display: none; }
}

@media (max-width: 700px) {
    .pipeline-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pipeline-subject-card { grid-template-columns: auto minmax(0,1fr) auto; }
    .pipeline-subject-card > .pipeline-stage-badge { grid-column: 2 / 3; justify-self: start; }
    .automation-mode-grid,
    .automation-thresholds { grid-template-columns: 1fr; }
}

.pipeline-loading-sources {
    margin: 0;
    padding: 18px;
    border: 1px dashed rgba(145, 153, 159, .35);
    border-radius: 12px;
    color: var(--gray, #91999F);
    background: rgba(255, 255, 255, .62);
    text-align: center;
}

/* Chargement progressif des actualités */
.newsia-page-loader,
.newsia-scroll-sentinel,
.newsia-article-empty {
    width: 100%;
    padding: 22px 16px;
    text-align: center;
    color: var(--gray);
    font-weight: 700;
}

.newsia-page-loader,
.newsia-scroll-sentinel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.newsia-scroll-sentinel {
    min-height: 74px;
    margin-top: 8px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .58);
    border: 1px solid rgba(0, 163, 224, .12);
    backdrop-filter: blur(8px);
}

.newsia-scroll-sentinel i,
.newsia-page-loader i {
    color: var(--blue);
}

.manual-sort-buttons button.favori.is-active {
    color: #fff;
    border-color: #f1c40f;
    background: #f1c40f;
}
.rss-card-hover.is-sorting-away {
    opacity: 0;
    transform: scale(.97);
    transition: opacity .22s ease, transform .22s ease;
}
.story-favorite.is-active { color: #f1c40f; }


/* --- MODALE RÉSUMÉ D'ARTICLE --- */
body.modal-open { overflow: hidden; }
.article-summary-modal-content {
    max-width: 780px;
    padding: 0;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid rgba(0, 163, 224, .14);
}
.article-summary-heading {
    padding: 28px 30px 20px;
    background: linear-gradient(135deg, rgba(0, 163, 224, .10), rgba(115, 201, 45, .08));
    border-bottom: 1px solid rgba(145, 153, 159, .16);
}
.article-summary-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--blue);
    font-weight: 700;
    font-size: .9rem;
    margin-bottom: 10px;
}
.article-summary-heading h2 {
    margin: 0;
    padding-right: 45px;
    color: #263238;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    line-height: 1.25;
}
.article-summary-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 14px;
    color: var(--grey);
    font-size: .9rem;
}
.article-summary-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.article-summary-body {
    padding: 24px 30px;
    overflow-y: auto;
    min-height: 150px;
    max-height: 52vh;
}
.article-summary-body p {
    margin: 0;
    color: #37474f;
    line-height: 1.75;
    font-size: 1rem;
}
.article-summary-loader,
.article-summary-empty {
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 12px;
    color: var(--grey);
    text-align: center;
}
.article-summary-loader i { color: var(--blue); font-size: 1.35rem; }
.article-summary-empty i { color: var(--grey); font-size: 1.8rem; }
.article-summary-empty p { color: var(--grey); }
.article-summary-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 18px 30px 24px;
    border-top: 1px solid rgba(145, 153, 159, .14);
    background: #fff;
}
.article-summary-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.article-summary-link.is-disabled {
    opacity: .45;
    pointer-events: none;
}
.article-summary-close {
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.article-summary-close-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
@media (max-width: 640px) {
    .article-summary-modal-content { max-height: 92vh; border-radius: 18px; }
    .article-summary-heading { padding: 24px 20px 18px; }
    .article-summary-body { padding: 20px; max-height: 55vh; }
    .article-summary-actions { padding: 16px 20px 20px; flex-direction: column; }
    .article-summary-actions > * { width: 100%; box-sizing: border-box; }
}

.manual-sort-buttons button.summary { display: inline-flex; align-items: center; justify-content: center; }

/* =========================================================
   TABLEAU DE BORD — COCKPIT ÉDITORIAL
   ========================================================= */
.dashboard-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}
.dashboard-heading h2 {
    margin: 5px 0 0;
    text-align: left;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
}
.dashboard-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--grey);
    font-size: .86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.dashboard-sync-status {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.dashboard-sync-status span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border: 1px solid rgba(145, 153, 159, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .75);
    color: var(--grey);
    font-size: .78rem;
}
.dashboard-sync-status i,
.dashboard-sync-status strong { color: var(--blue); }

.dashboard-panel {
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(145, 153, 159, .16);
    border-radius: 20px;
    padding: 22px;
    box-shadow: 0 12px 34px rgba(40, 76, 92, .07);
    margin-bottom: 18px;
}
.dashboard-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.dashboard-section-heading > div:first-child {
    display: flex;
    align-items: center;
    gap: 12px;
}
.dashboard-section-heading h3 {
    margin: 0 0 3px;
    color: #263238;
    text-align: left;
    font-size: 1.15rem;
}
.dashboard-section-heading p {
    margin: 0;
    color: var(--grey);
    font-size: .88rem;
}
.dashboard-section-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    background: linear-gradient(135deg, rgba(0, 163, 224, .13), rgba(115, 201, 45, .12));
    color: var(--blue);
}
.dashboard-text-action {
    padding: 8px 11px;
    border: 0;
    background: transparent;
    color: var(--blue);
    font-size: .84rem;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.dashboard-text-action:hover { color: var(--green); opacity: 1; }

.dashboard-today-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.dashboard-metric {
    min-width: 0;
    padding: 17px;
    border: 1px solid rgba(145, 153, 159, .14);
    border-radius: 16px;
    background: #fff;
    text-align: left;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "icon value" "icon label";
    column-gap: 13px;
    align-items: center;
    box-shadow: 0 5px 18px rgba(40, 76, 92, .04);
}
.dashboard-metric:hover {
    opacity: 1;
    border-color: rgba(0, 163, 224, .35);
    transform: translateY(-2px);
    box-shadow: 0 9px 23px rgba(0, 163, 224, .09);
}
.dashboard-metric-icon {
    grid-area: icon;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 163, 224, .09);
    color: var(--blue);
    font-size: 1rem;
}
.dashboard-metric-value {
    grid-area: value;
    color: #263238;
    font-size: 1.75rem;
    line-height: 1;
    font-weight: 800;
}
.dashboard-metric-label {
    grid-area: label;
    color: var(--grey);
    font-size: .78rem;
    font-weight: 700;
    margin-top: 3px;
}

.dashboard-pipeline {
    display: flex;
    align-items: center;
    gap: 7px;
    overflow-x: auto;
    padding: 3px 2px 8px;
    scrollbar-width: thin;
}
.dashboard-stage {
    flex: 1 0 112px;
    min-width: 112px;
    padding: 14px 10px;
    border: 1px solid rgba(0, 163, 224, .14);
    border-radius: 15px;
    background: linear-gradient(180deg, #fff, rgba(0, 163, 224, .035));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.dashboard-stage:hover {
    opacity: 1;
    border-color: rgba(0, 163, 224, .42);
    transform: translateY(-2px);
}
.dashboard-stage-icon {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    background: rgba(0, 163, 224, .09);
    margin-bottom: 3px;
}
.dashboard-stage strong {
    color: #263238;
    font-size: 1.35rem;
}
.dashboard-stage small {
    color: var(--grey);
    font-weight: 700;
}
.dashboard-stage.is-final {
    border-color: rgba(115, 201, 45, .26);
    background: linear-gradient(180deg, #fff, rgba(115, 201, 45, .06));
}
.dashboard-stage.is-final .dashboard-stage-icon { color: var(--green); background: rgba(115, 201, 45, .11); }
.dashboard-stage-arrow { color: rgba(145, 153, 159, .5); flex: 0 0 auto; font-size: .76rem; }

.dashboard-attention-list {
    display: grid;
    gap: 9px;
}
.dashboard-attention-item {
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 13px;
    padding: 13px 14px;
    border: 1px solid rgba(145, 153, 159, .15);
    border-radius: 14px;
    background: #fff;
    text-align: left;
}
.dashboard-attention-item:hover {
    opacity: 1;
    border-color: rgba(0, 163, 224, .34);
    background: rgba(0, 163, 224, .025);
}
.dashboard-attention-item.is-empty { opacity: .52; }
.dashboard-attention-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    background: rgba(0, 163, 224, .08);
}
.dashboard-attention-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}
.dashboard-attention-copy strong { color: #263238; font-size: .93rem; }
.dashboard-attention-copy small { color: var(--grey); font-weight: 400; }
.dashboard-attention-count {
    min-width: 34px;
    height: 30px;
    padding: 0 9px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 163, 224, .09);
    color: var(--blue);
    font-weight: 800;
}
.dashboard-attention-chevron { color: rgba(145, 153, 159, .7); font-size: .76rem; }
.dashboard-all-clear {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 13px;
    background: rgba(115, 201, 45, .09);
    color: #4c8c1b;
    font-weight: 700;
    text-align: center;
}

.dashboard-upcoming-list {
    display: grid;
    gap: 9px;
}
.dashboard-upcoming-item {
    width: 100%;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 12px 14px;
    border: 1px solid rgba(145, 153, 159, .15);
    border-radius: 14px;
    background: #fff;
    text-align: left;
}
.dashboard-upcoming-item:hover { opacity: 1; border-color: rgba(0, 163, 224, .34); transform: translateY(-1px); }
.dashboard-upcoming-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 5px 8px;
    border-radius: 11px;
    background: rgba(0, 163, 224, .08);
    color: var(--blue);
}
.dashboard-upcoming-date strong { font-size: .83rem; text-transform: capitalize; }
.dashboard-upcoming-date small { color: var(--grey); font-weight: 700; margin-top: 2px; }
.dashboard-upcoming-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.dashboard-upcoming-copy strong { color: #263238; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dashboard-upcoming-copy small { color: var(--grey); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dashboard-upcoming-item > i { color: rgba(145, 153, 159, .65); }
.dashboard-inline-loader,
.dashboard-empty-state {
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--grey);
    font-weight: 700;
}

.dashboard-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: -2px 0 12px;
    color: var(--grey);
    font-size: .76rem;
    font-weight: 700;
}
.dashboard-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dashboard-legend-mark { width: 18px; height: 3px; border-radius: 999px; background: var(--blue); }
.dashboard-chart-legend .is-retained .dashboard-legend-mark { background: var(--green); }
.dashboard-chart-legend .is-summaries .dashboard-legend-mark { background: var(--grey); }
.dashboard-chart-legend .is-publications .dashboard-legend-mark { background: #263238; }
.dashboard-activity-chart { width: 100%; min-height: 220px; overflow: hidden; }
.dashboard-activity-svg { width: 100%; height: auto; min-height: 220px; display: block; }
.dashboard-chart-grid { stroke: rgba(145, 153, 159, .16); stroke-width: 1; }
.dashboard-chart-x-label,
.dashboard-chart-y-label { fill: #91999F; font-family: 'Trebuchet MS', sans-serif; font-size: 11px; }
.dashboard-chart-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.dashboard-chart-line.is-collected { stroke: #00A3E0; }
.dashboard-chart-line.is-retained { stroke: #73C92D; }
.dashboard-chart-line.is-summaries { stroke: #91999F; stroke-dasharray: 7 5; }
.dashboard-chart-line.is-publications { stroke: #263238; stroke-dasharray: 2 5; }

.dashboard-health-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.dashboard-health-stat {
    padding: 14px;
    border: 1px solid rgba(145, 153, 159, .15);
    border-radius: 14px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.dashboard-health-stat span { color: var(--grey); display: inline-flex; align-items: center; gap: 7px; font-size: .8rem; font-weight: 700; }
.dashboard-health-stat strong { color: var(--blue); font-size: 1.45rem; }
.dashboard-health-stat.is-ok strong { color: var(--green); }
.dashboard-health-stat.is-error strong { color: #b54a4a; }
.dashboard-health-stat.is-never strong { color: var(--grey); }
.dashboard-feed-problems { display: grid; gap: 8px; margin-top: 12px; }
.dashboard-feed-problem {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(181, 74, 74, .06);
    color: #a13e3e;
}
.dashboard-feed-problem > i { margin-top: 2px; }
.dashboard-feed-problem span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dashboard-feed-problem strong { color: #643232; }
.dashboard-feed-problem small { color: #8b5a5a; overflow-wrap: anywhere; }
.dashboard-health-ok {
    margin-top: 12px;
    padding: 11px 13px;
    border-radius: 12px;
    background: rgba(115, 201, 45, .08);
    color: #4c8c1b;
    font-weight: 700;
}
.dashboard-health-footer { margin-top: 12px; color: var(--grey); font-size: .78rem; text-align: right; }
.dashboard-health-footer strong { color: #263238; }

/* Story Mode : trois décisions principales */
.btn-story.summary { background-color: var(--grey); }
.btn-story.summary:hover { background-color: var(--blue); opacity: 1; }

/* La modale de résumé doit aussi fonctionner au-dessus du Story Mode plein écran. */
#article-summary-modal { z-index: 12000; }
.article-summary-actions { align-items: stretch; }
.article-summary-action {
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    width: auto;
    box-sizing: border-box;
    font-family: 'Trebuchet MS', sans-serif;
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
.article-summary-action.is-primary {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
}
.article-summary-action.is-secondary {
    background: #fff;
    border-color: rgba(145, 153, 159, .34);
    color: var(--grey);
}
.article-summary-action:hover { opacity: .86; }
.article-summary-link.is-disabled { opacity: .45; pointer-events: none; }

@media (max-width: 900px) {
    .dashboard-today-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-heading { align-items: flex-start; flex-direction: column; }
    .dashboard-sync-status { justify-content: flex-start; }
}
@media (max-width: 640px) {
    .dashboard-panel { padding: 17px; border-radius: 17px; }
    .dashboard-today-grid { grid-template-columns: 1fr; }
    .dashboard-section-heading { align-items: flex-start; }
    .dashboard-section-heading > div:first-child { align-items: flex-start; }
    .dashboard-text-action { display: none; }
    .dashboard-pipeline { margin-right: -17px; padding-right: 17px; }
    .dashboard-stage { flex-basis: 100px; min-width: 100px; }
    .dashboard-attention-item { grid-template-columns: auto minmax(0, 1fr) auto; }
    .dashboard-attention-chevron { display: none; }
    .dashboard-attention-copy small { font-size: .74rem; }
    .dashboard-upcoming-item { grid-template-columns: 72px minmax(0, 1fr); }
    .dashboard-upcoming-item > i { display: none; }
    .dashboard-health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-chart-legend { gap: 8px 12px; }
    .article-summary-actions { flex-direction: row; }
    .article-summary-actions > * { flex: 1; width: auto; }
}

/* newsia v1.8 — actions rapides & cockpit RSS */
.dashboard-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.dashboard-quick-action {
    min-width: 0;
    border: 1px solid rgba(145, 153, 159, .18);
    background: rgba(255, 255, 255, .88);
    border-radius: 14px;
    padding: 13px 14px;
    display: flex;
    align-items: center;
    gap: 11px;
    text-align: left;
    cursor: pointer;
    font-family: 'Trebuchet MS', sans-serif;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.dashboard-quick-action:hover {
    transform: translateY(-1px);
    border-color: rgba(0, 163, 224, .34);
    box-shadow: 0 8px 22px rgba(28, 60, 74, .08);
}
.dashboard-quick-action:disabled { cursor: wait; opacity: .68; transform: none; }
.dashboard-quick-action > i {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--blue);
    background: rgba(0, 163, 224, .09);
}
.dashboard-quick-action:nth-child(2) > i { color: var(--green); background: rgba(115, 201, 45, .10); }
.dashboard-quick-action:nth-child(3) > i { color: #68757d; background: rgba(145, 153, 159, .12); }
.dashboard-quick-action span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dashboard-quick-action strong { color: #263238; font-size: .88rem; }
.dashboard-quick-action small { color: var(--grey); font-size: .72rem; line-height: 1.3; }
.dashboard-quick-status { min-height: 0; margin-top: 0; font-size: .78rem; font-weight: 700; color: var(--grey); transition: margin .18s ease; }
.dashboard-quick-status:not(:empty) { margin-top: 10px; }
.dashboard-quick-status.is-success { color: #4d8c1f; }
.dashboard-quick-status.is-error { color: #b54a4a; }
.dashboard-quick-status i { margin-right: 5px; }

.dashboard-source-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(145, 153, 159, .14);
    border-radius: 14px;
}
.dashboard-source-table {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
    font-size: .78rem;
}
.dashboard-source-table th {
    text-align: left;
    color: var(--grey);
    font-weight: 800;
    background: rgba(248, 251, 252, .92);
    padding: 10px 11px;
    border-bottom: 1px solid rgba(145, 153, 159, .16);
    white-space: nowrap;
}
.dashboard-source-table td {
    padding: 10px 11px;
    border-bottom: 1px solid rgba(145, 153, 159, .10);
    color: #445058;
    vertical-align: middle;
}
.dashboard-source-table tbody tr:last-child td { border-bottom: 0; }
.dashboard-source-table tbody tr:hover { background: rgba(0, 163, 224, .025); }
.dashboard-source-name { display: flex; flex-direction: column; gap: 2px; min-width: 150px; }
.dashboard-source-name strong { color: #263238; }
.dashboard-source-name small,
.dashboard-source-subvalue { color: var(--grey); font-size: .69rem; font-weight: 400; }
.dashboard-source-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    padding: 5px 8px;
    font-weight: 800;
    white-space: nowrap;
}
.dashboard-source-status.is-ok { color: #4d8c1f; background: rgba(115, 201, 45, .11); }
.dashboard-source-status.is-error { color: #a64040; background: rgba(181, 74, 74, .10); }
.dashboard-source-status.is-never { color: #68747b; background: rgba(145, 153, 159, .11); }
.dashboard-source-rate { display: inline-flex; min-width: 46px; justify-content: center; font-weight: 800; color: #4d8c1f; }
.dashboard-source-rate.is-low { color: #b56b2f; }
.dashboard-source-note { margin: 9px 2px 0; color: var(--grey); font-size: .72rem; line-height: 1.45; }
.dashboard-source-note i { color: var(--blue); margin-right: 4px; }

@media (max-width: 980px) {
    .dashboard-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .dashboard-quick-actions { grid-template-columns: 1fr; }
    .dashboard-quick-action { padding: 11px 12px; }
}
.dashboard-source-error {
    display: inline-block;
    max-width: 210px;
    color: #8b5a5a;
    font-size: .7rem;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}


/* ==========================================================
   newsia v2.0 - Aperçu RSS compact et enrichi
   ========================================================== */
.rss-preview-modal-content { width: min(820px, 94vw); max-width: 820px; padding: 24px; border-radius: 22px; overflow: hidden; }
#rss-test-content { min-height: 160px; overflow: hidden; }
.rss-preview-loading, .rss-preview-empty { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--grey); text-align: center; }
.rss-preview-loading > i { font-size: 1.8rem; color: var(--blue); }
.rss-preview-loading strong { color: var(--text); }
.rss-preview-loading span { font-size: .82rem; }
.rss-preview-summary { margin: 8px 0 14px; padding: 15px 16px; border: 1px solid rgba(0,163,224,.16); border-radius: 16px; background: linear-gradient(135deg, rgba(0,163,224,.055), rgba(115,201,45,.045)); }
.rss-preview-status { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.rss-preview-status span { color:#4d8c1f; font-size:.78rem; font-weight:800; }
.rss-preview-status small { color:var(--grey); font-size:.72rem; }
.rss-preview-summary h3 { margin:0; color:var(--text); font-size:1.08rem; }
.rss-preview-summary > p { margin:6px 0 0; color:var(--muted); font-size:.8rem; line-height:1.45; }
.rss-preview-facts { display:grid; gap:6px; margin-top:11px; padding-top:10px; border-top:1px solid rgba(145,153,159,.16); }
.rss-preview-facts span { min-width:0; display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.74rem; }
.rss-preview-facts i { width:14px; color:var(--blue); text-align:center; }
.rss-preview-facts a { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--blue); text-decoration:none; }
.rss-preview-list { max-height:min(58vh,560px); overflow-y:auto; padding-right:5px; display:grid; gap:9px; }
.rss-preview-item { display:grid; grid-template-columns:122px minmax(0,1fr); gap:12px; padding:10px; border:1px solid rgba(145,153,159,.18); border-radius:14px; background:rgba(255,255,255,.92); }
.rss-preview-thumb { width:122px; height:82px; display:flex; overflow:hidden; border-radius:10px; background:#eef4f6; }
.rss-preview-thumb img { width:100%; height:100%; object-fit:cover; }
.rss-preview-thumb.is-placeholder, .rss-preview-thumb.is-broken { align-items:center; justify-content:center; color:var(--grey); text-decoration:none; }
.rss-preview-thumb.is-broken img { display:none; }
.rss-preview-thumb.is-broken::after { content:"\f03e"; font-family:"Font Awesome 6 Free"; font-weight:400; }
.rss-preview-item-body { min-width:0; }
.rss-preview-item-meta { margin-bottom:4px; color:var(--grey); font-size:.68rem; }
.rss-preview-item-meta i { color:var(--green); margin-right:3px; }
.rss-preview-item-title { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; color:var(--blue); font-size:.87rem; line-height:1.28; font-weight:800; text-decoration:none; }
.rss-preview-item-title:hover { text-decoration:underline; }
.rss-preview-item p { margin:5px 0 0; color:#58666d; font-size:.73rem; line-height:1.35; }
.rss-preview-item p.is-muted { color:var(--grey); font-style:italic; }
.rss-preview-error { display:flex; gap:12px; align-items:flex-start; padding:16px; border-radius:14px; color:#a64040; background:rgba(181,74,74,.08); border:1px solid rgba(181,74,74,.15); }
.rss-preview-error div { display:flex; flex-direction:column; gap:3px; }
.rss-preview-error span { color:#6c5555; font-size:.78rem; }
@media (max-width:700px) {
  .rss-preview-modal-content { width:96vw; padding:20px 14px 14px; border-radius:18px; }
  .rss-preview-status { align-items:flex-start; flex-direction:column; gap:3px; }
  .rss-preview-item { grid-template-columns:92px minmax(0,1fr); gap:10px; }
  .rss-preview-thumb { width:92px; height:72px; }
  .rss-preview-item p { -webkit-line-clamp:2; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }
  .u-style-233 { table-layout:auto; }
  .u-style-235, .u-style-237 { width:auto; }
}

/* newsia v2.1 - chargement progressif de l'aperçu RSS */
.rss-preview-more {
    display: none;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--grey);
    font-size: .75rem;
    font-weight: 700;
}
.rss-preview-more.is-visible { display: flex; }
.rss-preview-more i { color: var(--blue); }
.rss-preview-more.is-error { color: #a64040; }
.rss-preview-more.is-error i { color: #a64040; }

/* ==========================================================
   NewsIA v2.3 - Atelier de synthèse par sujet
   ========================================================== */
.synthesis-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 18px;
    padding: 24px;
    border: 1px solid rgba(0, 163, 224, .15);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(0, 163, 224, .09), rgba(115, 201, 45, .08));
    box-shadow: 0 16px 38px rgba(49, 79, 92, .08);
}
.synthesis-hero h2 { margin: 4px 0 7px; color: var(--text); font-size: clamp(1.45rem, 2vw, 2rem); }
.synthesis-hero p { margin: 0; max-width: 760px; color: var(--muted); line-height: 1.5; }
.synthesis-hero-counts { display: grid; grid-template-columns: repeat(2, minmax(110px, 1fr)); gap: 10px; flex: 0 0 auto; }
.synthesis-hero-counts span { display: flex; min-width: 116px; flex-direction: column; align-items: center; justify-content: center; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.86); border: 1px solid rgba(145,153,159,.16); }
.synthesis-hero-counts strong { color: var(--blue); font-size: 1.55rem; line-height: 1; }
.synthesis-hero-counts small { margin-top: 5px; color: var(--grey); font-size: .7rem; font-weight: 800; }
.synthesis-workbench { margin-bottom: 22px; padding: 18px; border: 1px solid rgba(145,153,159,.17); border-radius: 20px; background: rgba(255,255,255,.91); box-shadow: 0 12px 30px rgba(49,79,92,.06); }
.synthesis-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.synthesis-section-heading > div { display: flex; align-items: center; gap: 11px; }
.synthesis-section-heading h3 { margin: 0; color: var(--text); font-size: 1rem; }
.synthesis-section-heading p { margin: 3px 0 0; color: var(--grey); font-size: .75rem; }
.synthesis-candidates { display: grid; gap: 10px; }
.synthesis-candidate { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 15px; border: 1px solid rgba(0,163,224,.14); border-radius: 16px; background: linear-gradient(135deg, rgba(0,163,224,.025), rgba(255,255,255,.94)); }
.synthesis-candidate.is-update { border-color: rgba(115,201,45,.28); background: linear-gradient(135deg, rgba(115,201,45,.07), rgba(255,255,255,.95)); }
.synthesis-candidate-main { min-width: 0; }
.synthesis-candidate-main h4 { margin: 5px 0 4px; color: #263238; font-size: .94rem; line-height: 1.35; }
.synthesis-candidate-main p { margin: 0; color: var(--grey); font-size: .71rem; line-height: 1.4; }
.synthesis-status { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .03em; }
.synthesis-candidate.is-update .synthesis-status { color: #579d21; }
.synthesis-generate-button { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 0 13px; border: 0; border-radius: 12px; background: linear-gradient(135deg, var(--blue), #168dc0); color: #fff; font: 800 .75rem "Trebuchet MS", sans-serif; cursor: pointer; box-shadow: 0 8px 18px rgba(0,163,224,.16); }
.synthesis-candidate.is-update .synthesis-generate-button { background: linear-gradient(135deg, var(--green), #62ad27); box-shadow: 0 8px 18px rgba(115,201,45,.16); }
.synthesis-generate-button:disabled { opacity: .68; cursor: wait; }
.synthesis-empty { display: flex; align-items: center; gap: 12px; min-height: 82px; padding: 15px; border-radius: 14px; background: rgba(115,201,45,.06); color: #567060; }
.synthesis-empty > i { color: var(--green); font-size: 1.4rem; }
.synthesis-empty div { display: flex; flex-direction: column; gap: 3px; }
.synthesis-empty strong { color: #35523e; }
.synthesis-empty span, .synthesis-loading { color: var(--grey); font-size: .76rem; }
.synthesis-loading { margin: 0; padding: 18px 8px; text-align: center; }
.synthesis-loading i { margin-right: 7px; color: var(--blue); }
.history-heading-row { display: flex; align-items: center; justify-content: space-between; margin: 4px 0 10px; }
.history-heading-row h3 { margin: 0; color: var(--text); font-size: 1rem; }
.history-heading-row i { margin-right: 6px; color: var(--blue); }
.pipeline-stage-badge.stage-update { color: #4f8f1f; background: rgba(115,201,45,.11); border-color: rgba(115,201,45,.24); }
@media (max-width: 760px) {
    .synthesis-hero { align-items: stretch; flex-direction: column; padding: 18px; }
    .synthesis-hero-counts { width: 100%; }
    .synthesis-candidate { align-items: stretch; flex-direction: column; }
    .synthesis-generate-button { width: 100%; }
}

/* ==========================================
   NewsIA v2.5 - Pipeline & sérieux éditorial
   ========================================== */
.pipeline-source-remove {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 2px;
    padding: 0;
    border: 1px solid rgba(145, 153, 159, .24);
    border-radius: 10px;
    background: #fff;
    color: var(--grey);
    cursor: pointer;
    transition: border-color .16s ease, color .16s ease, background .16s ease, transform .16s ease;
}

.pipeline-source-remove:hover {
    border-color: rgba(220, 53, 69, .35);
    background: rgba(220, 53, 69, .06);
    color: #dc3545;
    transform: translateY(-1px);
}

.queue-item-card .article-meta {
    align-items: center;
}

.seriousness-badge,
.summary-seriousness {
    --seriousness-tone: var(--grey);
    --seriousness-soft: rgba(145, 153, 159, .10);
    --seriousness-border: rgba(145, 153, 159, .24);
}

.seriousness-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--seriousness-border);
    border-radius: 999px;
    background: var(--seriousness-soft);
    color: var(--seriousness-tone);
    font-size: .76rem;
    font-weight: 800;
    white-space: nowrap;
}

.seriousness-badge.is-high,
.summary-seriousness.is-high {
    --seriousness-tone: #4e9d1e;
    --seriousness-soft: rgba(115, 201, 45, .10);
    --seriousness-border: rgba(115, 201, 45, .28);
}

.seriousness-badge.is-good,
.summary-seriousness.is-good {
    --seriousness-tone: #1680a9;
    --seriousness-soft: rgba(0, 163, 224, .09);
    --seriousness-border: rgba(0, 163, 224, .24);
}

.seriousness-badge.is-medium,
.summary-seriousness.is-medium {
    --seriousness-tone: #b47900;
    --seriousness-soft: rgba(243, 156, 18, .09);
    --seriousness-border: rgba(243, 156, 18, .26);
}

.seriousness-badge.is-low,
.summary-seriousness.is-low {
    --seriousness-tone: #bd3544;
    --seriousness-soft: rgba(220, 53, 69, .08);
    --seriousness-border: rgba(220, 53, 69, .24);
}

.summary-seriousness {
    margin: 14px 0 18px;
    padding: 13px 15px;
    border: 1px solid var(--seriousness-border);
    border-radius: 14px;
    background: var(--seriousness-soft);
    color: #465159;
}

.summary-seriousness > span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--seriousness-tone);
    font-weight: 800;
}

.summary-seriousness p {
    margin: 7px 0 0;
    color: #657178;
    line-height: 1.45;
}

/* Fin de liste : un véritable écran de clôture */
.end-message-robot {
    min-height: calc(100vh - 90px);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 42px 18px;
    box-sizing: border-box;
}

.end-message-robot-inner {
    width: min(520px, 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    color: var(--grey);
}

.end-message-icon {
    width: 88px;
    height: 88px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0, 163, 224, .18);
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(0, 163, 224, .10), rgba(115, 201, 45, .10));
    color: var(--blue);
    font-size: 2.35rem;
    box-shadow: 0 18px 40px rgba(37, 63, 78, .08);
}

.end-message-robot strong {
    color: #35434a;
    font-size: clamp(1.45rem, 4vw, 2.15rem);
}

.end-message-robot p {
    margin: 0;
    color: #748087;
    line-height: 1.5;
}

.end-message-top {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(0, 163, 224, .25);
    border-radius: 12px;
    background: #fff;
    color: var(--blue);
    font-family: "Trebuchet MS", Arial, sans-serif;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 767px) {
    .queue-item-card .article-meta {
        align-items: flex-start;
    }

    .pipeline-source-remove {
        margin-left: auto;
    }

    .queue-summary-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .seriousness-badge {
        order: -1;
    }

    .end-message-robot {
        min-height: calc(100dvh - 76px);
    }
}


/* ==========================================================
   NewsIA v2.6 - lisibilité des flux RSS + atelier éditorial
   ========================================================== */
.rss-table-row { transition: background .16s ease, box-shadow .16s ease, outline-color .16s ease; outline: 1px solid transparent; outline-offset: -1px; }
.rss-table-row:nth-child(even) { background: rgba(145,153,159,.075); }
.rss-table-row:nth-child(odd) { background: rgba(255,255,255,.92); }
.rss-table-row:hover { background: rgba(0,163,224,.075); outline-color: rgba(0,163,224,.42); box-shadow: inset 4px 0 0 rgba(0,163,224,.72); }
.rss-table-row td { padding-top: 11px; padding-bottom: 11px; }

.editorial-hero-counts { min-width: 330px; }
.editorial-workbench { padding: 0; overflow: hidden; }
.editorial-toolbar { display:flex; align-items:center; gap:10px; padding:16px; border-bottom:1px solid rgba(145,153,159,.2); background:rgba(255,255,255,.72); }
.editorial-search { flex:1; display:flex; align-items:center; gap:8px; min-width:220px; padding:0 12px; background:#fff; border:1px solid rgba(145,153,159,.28); border-radius:12px; }
.editorial-search i { color:var(--grey); }
.editorial-search input { width:100%; border:0; outline:0; background:transparent; padding:11px 0; font-family:'Trebuchet MS',sans-serif; }
.editorial-toolbar select { min-width:170px; }
.editorial-workbench-head, .editorial-row { display:grid; grid-template-columns:minmax(240px,2fr) minmax(108px,.7fr) 78px 80px minmax(350px,1.8fr); align-items:center; gap:12px; }
.editorial-workbench-head { padding:10px 16px; background:rgba(145,153,159,.09); color:#657078; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.editorial-head-seriousness { text-align:center; }
.editorial-head-actions { text-align:right; padding-right:2px; }
.editorial-row { padding:15px 16px; border-top:1px solid rgba(145,153,159,.16); background:#fff; transition:.16s ease; }
.editorial-row:nth-child(even) { background:rgba(145,153,159,.035); }
.editorial-row:hover { background:rgba(0,163,224,.045); box-shadow:inset 4px 0 0 rgba(0,163,224,.7); }
.editorial-subject { display:flex; flex-direction:column; gap:5px; min-width:0; }
.editorial-subject strong { font-size:.98rem; color:#26343c; }
.editorial-subject small, .editorial-source-count small { color:var(--grey); }
.editorial-source-count { display:flex; flex-direction:column; gap:2px; }
.editorial-source-button { width:max-content; max-width:100%; padding:6px 8px; margin:-6px -8px; border:1px solid transparent; border-radius:9px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.editorial-source-button:hover { border-color:rgba(0,163,224,.24); background:rgba(0,163,224,.055); }
.editorial-source-button strong { color:#26343c; }
.editorial-status { display:inline-flex; align-items:center; gap:7px; width:max-content; max-width:100%; padding:6px 9px; border-radius:999px; font-size:.78rem; font-weight:700; white-space:nowrap; }
.editorial-status.is-ready { background:rgba(0,163,224,.1); color:#0079a7; }
.editorial-status.is-update { background:rgba(255,170,0,.12); color:#9b6900; }
.editorial-status.is-synthesized { background:rgba(115,201,45,.1); color:#4d9218; }
.editorial-status.is-draft { background:rgba(145,153,159,.14); color:#657078; }
.editorial-status.is-scheduled { background:rgba(0,163,224,.12); color:#0079a7; }
.editorial-status.is-published { background:rgba(115,201,45,.14); color:#3f8610; }
.editorial-row-actions { display:flex; justify-content:flex-end; align-items:center; gap:7px; flex-wrap:nowrap; white-space:nowrap; overflow:visible; min-width:0; }
.editorial-row-actions .editorial-action { flex:0 0 auto; }
.editorial-action { display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:7px 10px; border:1px solid rgba(145,153,159,.28); border-radius:9px; background:#fff; color:#46545c; font:700 .78rem 'Trebuchet MS',sans-serif; text-decoration:none; cursor:pointer; }
.editorial-action:hover { border-color:var(--blue); color:var(--blue); }
.editorial-action.is-primary { background:var(--blue); border-color:var(--blue); color:#fff; }
.editorial-action.is-green { background:var(--green); border-color:var(--green); color:#fff; }
.editorial-empty { margin:18px; }

.planner-editor-modal { width:min(1180px,94vw); max-height:92dvh; overflow:auto; padding:24px; }
.planner-editor-close { display:flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:0; border-radius:50%; background:rgba(145,153,159,.12); color:#59666e; cursor:pointer; font-size:0; line-height:0; }
.planner-editor-close i { display:block; margin:0; font-size:18px; line-height:1; }
.planner-editor-close:hover { color:#bd3544; background:rgba(189,53,68,.09); }
.planner-editor-heading { padding-right:48px; margin-bottom:18px; }
.planner-editor-heading h2 { margin:6px 0; }
.planner-editor-heading p { margin:0; color:#68757d; }
.publication-editor-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,.8fr); gap:18px; align-items:start; }
.publication-editor-card { border:1px solid rgba(145,153,159,.2); border-radius:18px; background:rgba(255,255,255,.94); padding:18px; }
.publication-editor-side { position:sticky; top:0; }
.publication-field + .publication-field { margin-top:20px; padding-top:18px; border-top:1px solid rgba(145,153,159,.15); }
.publication-field-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.publication-field-heading label { font-weight:700; color:#26343c; }
.publication-field-heading label i { color:var(--blue); margin-right:6px; }
.publication-field-hint { color:var(--grey); font-size:.78rem; }
.publication-ai-tools { display:flex; gap:6px; flex-wrap:wrap; }
.publication-ai-tools button { border:1px solid rgba(0,163,224,.24); border-radius:8px; background:rgba(0,163,224,.055); color:#007daa; padding:6px 8px; font:700 .75rem 'Trebuchet MS',sans-serif; cursor:pointer; }
.publication-ai-tools button:hover { background:rgba(0,163,224,.11); }
.publication-ai-tools button:disabled { opacity:.45; cursor:wait; }
.publication-field input[type="text"], .publication-field input[type="url"], .publication-field textarea, .publication-schedule input { width:100%; box-sizing:border-box; border:1px solid rgba(145,153,159,.3); border-radius:11px; padding:11px 12px; background:#fff; font:inherit; resize:vertical; }
.publication-field textarea:focus, .publication-field input:focus { outline:2px solid rgba(0,163,224,.15); border-color:var(--blue); }

.publication-update-field { border:1px solid rgba(0,163,224,.22) !important; border-radius:15px; padding:16px !important; background:linear-gradient(145deg, rgba(0,163,224,.055), rgba(115,201,45,.035)); }
.publication-update-head { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.publication-update-head h3 { margin:4px 0 5px; color:#26343c; font-size:1rem; }
.publication-update-head p { margin:0; color:#68757d; line-height:1.45; font-size:.88rem; }
.publication-update-kicker { display:inline-flex; align-items:center; gap:6px; color:var(--blue); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.publication-update-field > label { display:flex; align-items:center; gap:7px; margin:11px 0 6px; color:#34434b; font-weight:700; font-size:.86rem; }
.publication-update-field > label .publication-field-hint { margin-left:auto; font-weight:400; }
.publication-update-actions { display:flex; align-items:center; gap:12px; margin-top:13px; flex-wrap:wrap; }
.publication-update-actions .article-summary-action { min-height:40px; }
.publication-update-status { color:#68757d; font-size:.83rem; line-height:1.35; }
.publication-update-status.is-success { color:#4c8f24; }
.publication-update-status.is-error { color:#bd3544; }
.publication-update-help { display:block; margin-top:10px; color:#7a868d; line-height:1.4; }
.publication-update-help i { color:var(--blue); margin-right:4px; }
.publication-proposals { display:grid; grid-template-columns:minmax(0,1fr); gap:7px; margin-bottom:9px; }
.publication-proposal { display:flex; align-items:flex-start; gap:8px; width:100%; max-width:100%; border:1px solid rgba(145,153,159,.22); border-radius:9px; background:#f8fafb; color:#52616a; padding:9px 10px; text-align:left; font:600 .78rem/1.45 'Trebuchet MS',sans-serif; cursor:pointer; }
.publication-proposal span { display:grid; place-items:center; min-width:18px; height:18px; border-radius:50%; background:rgba(0,163,224,.1); color:var(--blue); font-size:.7rem; }
.publication-proposal:hover, .publication-proposal.is-selected { border-color:rgba(0,163,224,.5); background:rgba(0,163,224,.06); }
.editorial-opinion-field { background:linear-gradient(135deg,rgba(0,163,224,.025),rgba(115,201,45,.035)); border-radius:13px; padding:15px; margin-left:-4px; margin-right:-4px; }
.planner-images-multiple { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:10px; }
.planner-multi-image { position:relative; border:1px solid rgba(145,153,159,.2); border-radius:12px; padding:6px; background:#fff; transition:.16s ease; }
.planner-multi-image.is-dragging { opacity:.45; transform:scale(.98); }
.planner-multi-image label { display:block; cursor:pointer; }
.planner-multi-image label input { position:absolute; opacity:0; pointer-events:none; }
.planner-multi-image label > span { display:block; position:relative; aspect-ratio:16/10; border:2px solid transparent; border-radius:9px; overflow:hidden; background:#eef2f3; }
.planner-multi-image img { width:100%; height:100%; object-fit:cover; display:block; }
.planner-multi-image label > span > i { display:none; position:absolute; top:6px; right:6px; width:25px; height:25px; place-items:center; border-radius:50%; background:var(--green); color:#fff; }
.planner-multi-image label input:checked + span { border-color:var(--green); box-shadow:0 0 0 2px rgba(115,201,45,.13); }
.planner-multi-image label input:checked + span > i { display:grid; }
.planner-image-sortbar { display:flex; align-items:center; justify-content:space-between; gap:5px; margin-bottom:5px; color:var(--grey); font-size:.72rem; }
.planner-image-sortbar > span { display:grid; place-items:center; min-width:22px; height:22px; border-radius:999px; background:rgba(0,163,224,.08); color:#007daa; font-weight:700; }
.planner-image-sortbar > div { display:flex; gap:3px; }
.planner-image-sortbar button { display:grid; place-items:center; width:25px; height:25px; padding:0; border:0; border-radius:7px; background:rgba(145,153,159,.09); color:#657078; cursor:pointer; }
.planner-image-sortbar button:hover { background:rgba(0,163,224,.1); color:var(--blue); }
.planner-image-drag { cursor:grab !important; }
.planner-image-drag:active { cursor:grabbing !important; }

.rich-editor-shell { position:relative; border:1px solid rgba(145,153,159,.3); border-radius:12px; background:#fff; overflow:visible; }
.rich-editor-shell:focus-within { border-color:var(--blue); box-shadow:0 0 0 2px rgba(0,163,224,.11); }
.rich-editor-toolbar { position:sticky; top:0; z-index:4; display:flex; align-items:center; gap:4px; flex-wrap:wrap; padding:7px; border-bottom:1px solid rgba(145,153,159,.18); background:rgba(248,251,252,.97); border-radius:11px 11px 0 0; }
.rich-editor-toolbar > button { display:grid; place-items:center; width:31px; height:31px; padding:0; border:1px solid transparent; border-radius:8px; background:transparent; color:#53626b; cursor:pointer; }
.rich-editor-toolbar > button:hover { border-color:rgba(0,163,224,.24); background:rgba(0,163,224,.07); color:var(--blue); }
.rich-editor-separator { width:1px; height:22px; margin:0 2px; background:rgba(145,153,159,.24); }
.rich-editor-spacer { flex:1; }
.rich-editor-content { min-height:340px; max-height:62vh; overflow:auto; padding:18px; outline:0; color:#29383f; line-height:1.72; font:inherit; }
.rich-editor-content:empty::before { content:attr(data-placeholder); color:#9aa4aa; pointer-events:none; }
.rich-editor-content p { margin:0 0 1em; }
.rich-editor-content h3 { margin:1.35em 0 .55em; color:#26343c; font-size:1.08rem; }
.rich-editor-content ul, .rich-editor-content ol { margin:.7em 0 1em 1.35em; padding-left:.7em; }
.rich-editor-content li { margin:.35em 0; }
.rich-editor-content blockquote { margin:1em 0; padding:.7em 1em; border-left:4px solid var(--blue); background:rgba(0,163,224,.045); color:#53626b; }
.rich-editor-content a { color:#007eaf; text-decoration:underline; }
.rich-editor-help { display:flex; align-items:flex-start; gap:7px; margin:8px 2px 0; color:#748087; font-size:.78rem; line-height:1.45; }
.rich-editor-help i { margin-top:2px; color:var(--blue); }
.rich-emoji-palette { position:absolute; top:45px; left:7px; z-index:8; display:flex; gap:4px; flex-wrap:wrap; width:190px; padding:7px; border:1px solid rgba(145,153,159,.24); border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(37,55,64,.16); }
.rich-emoji-palette[hidden] { display:none; }
.rich-emoji-palette button { width:34px; height:34px; border:0; border-radius:8px; background:#f6f8f9; font-size:1.15rem; cursor:pointer; }
.rich-emoji-palette button:hover { background:rgba(0,163,224,.08); }
.editorial-action.is-danger { border-color:rgba(203,68,74,.2); background:rgba(203,68,74,.055); color:#b33d43; }
.editorial-action.is-danger:hover { border-color:#cb444a; background:rgba(203,68,74,.1); color:#a53238; }

.planner-no-image { grid-column:1/-1; padding:18px; text-align:center; color:var(--grey); border:1px dashed rgba(145,153,159,.35); border-radius:11px; }
.publication-upload-button { width:100%; justify-content:center; }
.planner-upload-status { display:block; margin-top:7px; color:var(--grey); font-size:.78rem; }
.publication-schedule label { display:block; margin:8px 0; color:#5d6970; font-size:.84rem; }
.publication-schedule small { color:var(--grey); }
.planner-editor-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; }
.editorial-assist-modal-content, .synthesis-preview-modal-content { width:min(760px,92vw); max-height:88dvh; overflow:auto; padding:24px; }
.editorial-assist-quill { margin-top:10px; min-height:260px; background:#fff; }
.editorial-assist-modal-content .ql-toolbar.ql-snow { border:1px solid rgba(145,153,159,.3); border-radius:11px 11px 0 0; font-family:'Trebuchet MS',Arial,sans-serif; }
.editorial-assist-modal-content .ql-container.ql-snow { min-height:220px; border:1px solid rgba(145,153,159,.3); border-top:0; border-radius:0 0 11px 11px; font-family:'Trebuchet MS',Arial,sans-serif; font-size:.95rem; }
.editorial-assist-modal-content .ql-editor { min-height:220px; line-height:1.6; }
.editorial-assist-modal-content .ql-editor p { margin:0 0 .85em; }
.editorial-assist-explanation { color:#68757d; }
.synthesis-preview-meta { color:var(--grey); margin:4px 0 16px; }
.synthesis-preview-body h3 { margin:18px 0 8px; color:#32424a; }
.synthesis-preview-body li { margin-bottom:6px; }
.synthesis-preview-article { line-height:1.65; }

@media (max-width: 900px) {
  .editorial-hero-counts { min-width:0; width:100%; }
  .editorial-toolbar { flex-wrap:wrap; }
  .editorial-search { flex-basis:100%; }
  .editorial-toolbar select { flex:1; }
  .editorial-workbench-head { display:none; }
  .editorial-row { grid-template-columns:1fr auto; gap:9px 12px; }
  .editorial-subject { grid-column:1/-1; }
  .editorial-source-count { grid-column:1/2; }
  .editorial-row-actions { grid-column:1/-1; justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; }
  .publication-editor-grid { grid-template-columns:1fr; }
  .publication-editor-side { position:static; }
}
@media (max-width: 560px) {
  .planner-editor-modal { width:96vw; padding:16px; border-radius:18px; }
  .publication-field-heading { align-items:flex-start; flex-direction:column; }
  .publication-ai-tools { width:100%; }
  .publication-ai-tools button { flex:1; }
  .planner-images-multiple { grid-template-columns:1fr 1fr; }
  .planner-editor-actions { flex-direction:column-reverse; }
  .planner-editor-actions .article-summary-action { width:100%; justify-content:center; }
  .publication-update-actions { align-items:stretch; flex-direction:column; }
  .publication-update-actions .article-summary-action { width:100%; justify-content:center; }
}

.synthesis-version-list { display:flex; flex-direction:column; gap:8px; }
.synthesis-version-item { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px; width:100%; padding:12px; border:1px solid rgba(145,153,159,.22); border-radius:11px; background:#fff; text-align:left; cursor:pointer; }
.synthesis-version-item:hover { border-color:rgba(0,163,224,.5); background:rgba(0,163,224,.04); }
.synthesis-version-item > span:first-child { display:flex; flex-direction:column; gap:3px; }
.synthesis-version-item small { color:var(--grey); }

/* NewsIA v2.7 - actions de synthèse compactes */
.btn-summarize.is-icon-only,
.editorial-action.is-icon-only {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    flex: 0 0 38px;
}

.btn-summarize.is-icon-only i,
.editorial-action.is-icon-only i {
    margin: 0;
}


/* NewsIA v2.8 - actions des sujets harmonisées */
.queue-summary-actions .pipeline-subject-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    margin: 0;
    border-radius: 8px;
    flex: 0 0 34px;
    gap: 0;
}
.queue-summary-actions .pipeline-subject-action i { margin: 0; }

/* NewsIA v2.41 - recherche Google d'un sujet */
.queue-summary-actions .pipeline-subject-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    height: 34px;
    padding: 0 11px;
    margin: 0;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    font-family: 'Trebuchet MS', Arial, sans-serif;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
    gap: 6px;
    white-space: nowrap;
}
.queue-summary-actions .pipeline-subject-search i { margin: 0; }
.queue-summary-actions .pipeline-subject-search:hover { filter: brightness(.96); transform: translateY(-1px); }

@media (max-width: 767px) {
    .queue-summary-actions .pipeline-subject-search {
        flex: 0 0 auto;
    }
}

/* ==========================================================
   NewsIA v2.9 - séparation Sujets / Synthèse / Planificateur / Publiés
   ========================================================== */
.planner-hero,
.published-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid rgba(145, 153, 159, .20);
    border-radius: 20px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 14px 34px rgba(50, 70, 80, .07);
}
.planner-hero h2,
.published-hero h2 { margin: 7px 0 5px; color: #26343c; }
.planner-hero p,
.published-hero p { margin: 0; color: #68757d; }
.planner-hero { justify-content: center; text-align: center; }
.planner-hero > div { width: 100%; }

.planner-schedule-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.planner-schedule-grid > .u-style-034 {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(145, 153, 159, .20);
    border-radius: 16px;
    background: rgba(255, 255, 255, .82);
}
 .planner-sunday-column {
    border-color: rgba(115, 201, 45, .26);
    background: rgba(115, 201, 45, .045);
}
.planner-sunday-column[hidden] { display: none !important; }
.planner-schedule-grid.has-sunday {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.planner-schedule-grid .planner-day-title { margin-top: 0; gap: 8px; }
.planner-day-label,
.planner-day-side {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}
.planner-day-side { justify-content: flex-end; flex-wrap: wrap; }
.planner-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border: 1px solid rgba(0, 163, 224, .24);
    border-radius: 999px;
    background: rgba(0, 163, 224, .09);
    color: var(--blue);
    font-size: .78rem;
    font-weight: 900;
    line-height: 1;
    box-sizing: border-box;
}
.planner-draft-column .planner-count-badge {
    border-color: rgba(145, 153, 159, .28);
    background: rgba(145, 153, 159, .10);
    color: #68757c;
}
.planner-drop-zone,
.planner-later-zone { min-height: 120px; }
.planner-empty-slot {
    margin: 0;
    padding: 22px 10px;
    border: 1px dashed rgba(145, 153, 159, .28);
    border-radius: 11px;
    color: var(--grey);
    text-align: center;
    font-size: .82rem;
}
.planner-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(145, 153, 159, .18);
    border-left: 4px solid var(--blue);
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 7px 18px rgba(50, 70, 80, .06);
    box-sizing: border-box;
}
.planner-item-main { display: block; min-width: 0; width: 100%; }
.planner-item-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.planner-item-meta .planner-time-badge,
.planner-item-meta .u-style-203 { margin-right: 0; }
.planner-time-edit {
    appearance: none;
    border: 1px solid rgba(0, 163, 224, .18);
    border-radius: 8px;
    padding: 4px 7px;
    background: rgba(0, 163, 224, .06);
    cursor: pointer;
    font: inherit;
}
.planner-time-edit:hover { background: rgba(0, 163, 224, .12); border-color: rgba(0, 163, 224, .34); }
.planner-time-edit-icon { margin-left: 3px; font-size: .72em; opacity: .62; }
.planner-item-copy { min-width: 0; width: 100%; }
.planner-item-copy h4 {
    margin: 0;
    color: #2c3940;
    font-size: .95rem;
    line-height: 1.4;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.planner-item-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
    width: 100%;
    padding-top: 9px;
    border-top: 1px solid rgba(145, 153, 159, .14);
}
.planner-item-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    margin: 0;
    border: 1px solid rgba(0, 163, 224, .24);
    border-radius: 9px;
    background: rgba(0, 163, 224, .07);
    color: #007fac;
    font-size: .82rem;
    line-height: 1;
}
.planner-item-action:hover,
.planner-item-action:focus-visible {
    opacity: 1;
    transform: translateY(-1px);
    background: rgba(0, 163, 224, .14);
    border-color: rgba(0, 163, 224, .42);
}
.planner-item-action-publish {
    color: #4d9218;
    border-color: rgba(115, 201, 45, .32);
    background: rgba(115, 201, 45, .08);
}
.planner-item-action-publish:hover,
.planner-item-action-publish:focus-visible {
    background: rgba(115, 201, 45, .16);
    border-color: rgba(115, 201, 45, .48);
}
.planner-item-action-delete {
    color: #b94a55;
    border-color: rgba(185, 74, 85, .28);
    background: rgba(185, 74, 85, .06);
}
.planner-item-action-delete:hover,
.planner-item-action-delete:focus-visible {
    background: rgba(185, 74, 85, .13);
    border-color: rgba(185, 74, 85, .42);
}
.planner-draft-column {
    border-color: rgba(145, 153, 159, .30) !important;
    background: rgba(145, 153, 159, .055) !important;
}
.planner-item.is-draft {
    border-left-color: var(--grey);
    background: rgba(255, 255, 255, .9);
}
.planner-draft-badge {
    color: #68757c;
    padding: 4px 7px;
    border: 1px solid rgba(145, 153, 159, .28);
    border-radius: 8px;
    background: rgba(145, 153, 159, .09);
}

.published-total {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 110px;
    padding: 12px 16px;
    border-radius: 14px;
    background: rgba(115, 201, 45, .09);
    color: #4d9218;
}
.published-total strong { font-size: 1.55rem; line-height: 1; }
.published-total small { margin-top: 4px; color: #657078; }
.published-list { display: flex; flex-direction: column; gap: 10px; }
.published-item {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 12px;
    border: 1px solid rgba(145, 153, 159, .20);
    border-radius: 15px;
    background: rgba(255, 255, 255, .90);
    transition: .16s ease;
}
.published-item:nth-child(even) { background: rgba(145, 153, 159, .035); }
.published-item:hover { border-color: rgba(115, 201, 45, .45); box-shadow: inset 4px 0 0 rgba(115, 201, 45, .72); }
.published-item-image {
    width: 86px;
    height: 62px;
    object-fit: cover;
    border-radius: 10px;
    background: #eef2f3;
}
.published-item-image.is-empty { display: grid; place-items: center; color: var(--grey); font-size: 1.25rem; }
.published-item-copy { min-width: 0; }
.published-item-copy h3 { margin: 4px 0; color: #2c3940; font-size: 1rem; text-align: left; }
.published-item-copy p { margin: 0 0 5px; color: #66747c; }
.published-item-copy small { color: var(--grey); }
.published-item-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #4d9218;
    font-size: .76rem;
    font-weight: 700;
}
.published-item-actions { display: flex; justify-content: flex-end; }
.published-load-sentinel { min-height: 54px; display: grid; place-items: center; color: var(--grey); font-size: .82rem; }
.published-load-sentinel .is-error { color: #b34a4a; }

@media (max-width: 1100px) {
    .planner-schedule-grid,
    .planner-schedule-grid.has-sunday { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .planner-hero,
    .published-hero { align-items: flex-start; flex-direction: column; }
    .planner-schedule-grid,
    .planner-schedule-grid.has-sunday { grid-template-columns: 1fr; }
    .published-total { align-items: flex-start; min-width: 0; }
    .published-item { grid-template-columns: 70px minmax(0, 1fr); }
    .published-item-image { width: 70px; height: 58px; }
    .published-item-actions { grid-column: 1 / -1; justify-content: flex-start; }
}


/* NewsIA v2.10 - tri par sérieux, filtre éditorial et avis du rédacteur */
.editorial-opinion-help { margin:0 0 9px; color:#68757d; font-size:.82rem; line-height:1.45; }
.editorial-opinion-help strong { color:#26343c; }
#editorial-score-filter { min-width:165px; }

/* NewsIA v2.12 - avis du rédacteur en texte riche compact */
.editorial-opinion-editor-shell { max-width:100%; }
.editorial-opinion-toolbar { position:relative; top:auto; }
.editorial-opinion-editor { min-height:150px; max-height:280px; padding:14px 16px; line-height:1.62; }
.editorial-opinion-editor p { margin:0 0 .72em; }
.editorial-opinion-editor p:last-child { margin-bottom:0; }
.editorial-opinion-editor ul { margin:.45em 0 .72em 1.2em; padding-left:.65em; }
.editorial-opinion-editor li { margin:.22em 0; }
.editorial-opinion-editor h1,
.editorial-opinion-editor h2,
.editorial-opinion-editor h3,
.editorial-opinion-editor h4,
.editorial-opinion-editor h5,
.editorial-opinion-editor h6 { display:block; margin:.55em 0; font-size:inherit; font-weight:700; }
.editorial-opinion-rich-help { margin-top:7px; }

/* NewsIA v2.13 — planificateur CRON central */
.cron-settings-intro {
    margin: 0 0 18px;
    color: #66727a;
    line-height: 1.55;
}
.cron-operation-list {
    display: grid;
    gap: 12px;
}
.cron-operation-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 16px 18px;
    border: 1px solid rgba(145, 153, 159, .22);
    border-radius: 16px;
    background: rgba(255, 255, 255, .72);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.cron-operation-card:hover {
    border-color: rgba(0, 163, 224, .42);
    box-shadow: 0 10px 28px rgba(27, 48, 60, .08);
    transform: translateY(-1px);
}
.cron-operation-toggle {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    cursor: pointer;
}
.cron-operation-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.cron-switch {
    position: relative;
    width: 46px;
    height: 26px;
    border-radius: 999px;
    background: rgba(145, 153, 159, .35);
    box-shadow: inset 0 0 0 1px rgba(145, 153, 159, .2);
    transition: background .2s ease;
}
.cron-switch::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(27, 48, 60, .22);
    transition: transform .2s ease;
}
.cron-operation-toggle input:checked + .cron-switch {
    background: linear-gradient(135deg, #00A3E0, #73C92D);
}
.cron-operation-toggle input:checked + .cron-switch::after {
    transform: translateX(20px);
}
.cron-operation-copy strong,
.cron-operation-copy small {
    display: block;
}
.cron-operation-copy strong {
    color: #344148;
    margin-bottom: 4px;
}
.cron-operation-copy strong i {
    width: 20px;
    color: #00A3E0;
}
.cron-operation-copy small {
    color: #778187;
    line-height: 1.4;
}
.cron-interval-field {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    color: #66727a;
    font-size: .9rem;
}
.cron-interval-field input {
    width: 78px;
    text-align: center;
}
.cron-command-box {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(0, 163, 224, .07);
    border: 1px solid rgba(0, 163, 224, .18);
}
.cron-command-box span {
    color: #4e5a61;
    font-weight: 700;
}
.cron-command-box code {
    overflow-x: auto;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .78);
    color: #344148;
    font-family: Consolas, Monaco, monospace;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .cron-operation-card {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .cron-interval-field {
        padding-left: 60px;
        white-space: normal;
        flex-wrap: wrap;
    }
}

/* NewsIA v2.14 — planificateur et surveillance des favoris */
.cron-operation-copy .cron-last-run {
    margin-top: 6px;
    color: #91999F;
    font-size: .78rem;
}


/* NewsIA v2.19 - Atelier éditorial : sources et actions */
.editorial-sources-modal-content {
    width: min(860px, 94vw);
    max-height: 88dvh;
    overflow: auto;
    padding: 24px;
}
.editorial-sources-meta {
    margin: -4px 0 16px;
    color: #68757d;
}
.editorial-sources-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.editorial-source-card {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) 36px;
    gap: 12px;
    align-items: center;
    padding: 10px;
    border: 1px solid rgba(145,153,159,.2);
    border-radius: 14px;
    background: #fff;
}
.editorial-source-card.is-pending {
    border-color: rgba(0,163,224,.32);
    background: rgba(0,163,224,.035);
}
.editorial-source-image {
    width: 88px;
    height: 64px;
    overflow: hidden;
    border-radius: 10px;
    background: rgba(145,153,159,.08);
}
.editorial-source-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.editorial-source-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--grey);
}
.editorial-source-content { min-width: 0; }
.editorial-source-topline,
.editorial-source-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    color: var(--grey);
    font-size: .76rem;
}
.editorial-source-topline { margin-bottom: 5px; }
.editorial-source-new {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(0,163,224,.09);
    color: #007da9;
    font-weight: 700;
}
.editorial-source-title {
    display: block;
    margin-bottom: 7px;
    color: #26343c;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
}
.editorial-source-title:hover { color: var(--blue); }
.editorial-source-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    border: 1px solid rgba(0,163,224,.22);
    background: rgba(0,163,224,.055);
    color: var(--blue);
    text-decoration: none;
}
.editorial-source-open:hover { background: rgba(0,163,224,.11); }

@media (max-width: 900px) {
    .editorial-row-actions { overflow-x: auto; justify-content: flex-start; }
}
@media (max-width: 560px) {
    .editorial-sources-modal-content { width: 96vw; padding: 18px 14px; }
    .editorial-source-card { grid-template-columns: 72px minmax(0,1fr) 34px; gap: 9px; }
    .editorial-source-image { width: 72px; height: 58px; }
}


/* NewsIA — harmonisation des actions */
.manual-sort-buttons button.related {
    background: transparent;
    border: 1px solid #dcdcdc;
    border-radius: 6px;
    color: var(--grey);
    padding: 6px 10px;
    font-size: 1.1em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
}
.manual-sort-buttons button.related:hover {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
}


/* NewsIA v2.22 — raccordement ceg.gy et page publique des sources */
.ceg-bridge-settings .ceg-bridge-toggle { margin-bottom: 18px; }
.ceg-bridge-endpoints { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ceg-bridge-endpoints code { flex:1 1 420px; min-width:0; padding:11px 13px; border:1px solid rgba(145,153,159,.26); border-radius:10px; background:rgba(248,251,252,.92); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ceg-bridge-test-result { margin-top:12px; min-height:22px; }
.ceg-bridge-test-result > span { display:inline-flex; align-items:center; gap:8px; }
.ceg-bridge-test-card { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 14px; border:1px solid rgba(115,201,45,.34); border-radius:12px; background:rgba(115,201,45,.08); }
.ceg-bridge-test-card strong { display:inline-flex; align-items:center; gap:7px; color:#447b1e; }
.ceg-bridge-test-card a { margin-left:auto; display:inline-flex; align-items:center; gap:7px; color:#007fae; font-weight:700; text-decoration:none; }

.page-public-sources { min-height:100vh; }
.public-sources-shell { padding-top:32px; padding-bottom:32px; }
.public-sources-hero { display:flex; align-items:center; gap:22px; padding:30px; border-radius:24px; background:linear-gradient(135deg, #00A3E0 0%, #73C92D 100%); color:#fff; box-shadow:0 18px 40px rgba(25,74,91,.16); }
.public-sources-icon { width:72px; height:72px; flex:0 0 72px; display:grid; place-items:center; border-radius:22px; background:rgba(255,255,255,.18); font-size:30px; }
.public-sources-hero-copy { min-width:0; flex:1 1 auto; }
.public-sources-back { margin-left:auto; flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 14px; border:1px solid rgba(255,255,255,.38); border-radius:12px; background:rgba(255,255,255,.13); color:#fff; text-decoration:none; font-weight:700; white-space:nowrap; transition:.18s ease; }
.public-sources-back:hover { background:#fff; color:#157da2; transform:translateY(-1px); }

.public-sources-kicker { display:block; margin-bottom:6px; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; opacity:.86; }
.public-sources-hero h1 { margin:0 0 7px; font-size:clamp(1.8rem,4vw,2.7rem); }
.public-sources-hero p { margin:0; max-width:760px; line-height:1.55; }
.public-sources-panel { margin-top:22px; padding:24px; border:1px solid rgba(145,153,159,.2); border-radius:20px; background:rgba(255,255,255,.88); box-shadow:0 14px 34px rgba(35,76,89,.10); backdrop-filter:blur(10px); }
.public-sources-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.public-sources-heading h2 { margin:0 0 5px; }
.public-sources-heading p { margin:0; color:#66737a; }
.public-sources-count { flex:0 0 auto; padding:7px 10px; border-radius:999px; background:rgba(0,163,224,.10); color:#007fae; font-weight:700; }
.public-sources-list { display:grid; gap:12px; }
.public-source-card { display:grid; grid-template-columns:104px minmax(0,1fr); gap:14px; padding:12px; border:1px solid rgba(145,153,159,.19); border-radius:15px; background:#fff; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.public-source-card:hover { transform:translateY(-1px); border-color:rgba(0,163,224,.42); box-shadow:0 9px 24px rgba(27,92,115,.10); }
.public-source-card > img { width:104px; height:76px; object-fit:cover; border-radius:10px; background:#eef3f5; }
.public-source-copy { min-width:0; }
.public-source-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:#738087; font-size:.8rem; }
.public-source-meta span { display:inline-flex; align-items:center; gap:6px; }
.public-source-copy h3 { margin:7px 0 9px; font-size:1rem; line-height:1.35; }
.public-source-copy a { display:inline-flex; align-items:center; gap:6px; color:#0086b8; font-weight:700; text-decoration:none; }
.public-sources-empty { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; color:#66737a; }
.public-sources-empty i { font-size:32px; color:#91999F; }
@media (max-width:640px) {
  .public-sources-shell { padding-top:16px; }
  .public-sources-hero { padding:22px; align-items:flex-start; }
  .public-sources-back { width:100%; margin-left:0; justify-content:center; }

  .public-sources-icon { width:54px; height:54px; flex-basis:54px; border-radius:16px; font-size:23px; }
  .public-sources-panel { padding:16px; }
  .public-source-card { grid-template-columns:76px minmax(0,1fr); }
  .public-source-card > img { width:76px; height:66px; }
  .public-sources-heading { align-items:center; }
}

.ceg-bridge-advanced { margin-top: 14px; }
.ceg-bridge-advanced > summary { cursor: pointer; font-weight: 700; color: #43515a; }
@media (max-width: 720px) {
    .u-style-230 { align-items: flex-start; gap: 10px; }
}


/* v2.32 : le SEO est exclusivement géré par ceg.gy. */
.publication-keywords-field { display: none !important; }


/* v30 — envoi manuel groupé du Planificateur vers ceg.gy */
.planner-day-send {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(145, 153, 159, .15);
}
.planner-day-send-btn {
    width: 100%;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    text-align: center;
}
.planner-day-send-btn:disabled { opacity: .6; cursor: wait; }


/* v2.37 — créneaux réservés du Planificateur */
.planner-day-tools { display:flex; flex-direction:column; gap:8px; margin-top:10px; padding-top:10px; border-top:1px solid rgba(145,153,159,.15); }


/* v2.42 — interaction du graphique Activité 7 jours */
.dashboard-activity-chart { position: relative; }
.dashboard-chart-hit-zone { fill: transparent; pointer-events: all; cursor: crosshair; }
.dashboard-chart-point { vector-effect: non-scaling-stroke; stroke-width: 1.5; }
.dashboard-chart-point.is-collected { fill: #00A3E0; stroke: #fff; }
.dashboard-chart-point.is-retained { fill: #73C92D; stroke: #fff; }
.dashboard-chart-point.is-summaries { fill: #91999F; stroke: #fff; }
.dashboard-chart-point.is-publications { fill: #263238; stroke: #fff; }
.dashboard-chart-tooltip {
    position: absolute;
    z-index: 8;
    width: 176px;
    padding: 9px 10px;
    border: 1px solid rgba(145,153,159,.26);
    border-radius: 12px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 10px 28px rgba(38,50,56,.14);
    color: #3d4b53;
    font-size: .76rem;
    line-height: 1.35;
    pointer-events: none;
}
.dashboard-chart-tooltip[hidden] { display: none; }
.dashboard-chart-tooltip strong { display: block; margin-bottom: 4px; color: #263238; }
.dashboard-chart-tooltip span { display: flex; justify-content: space-between; gap: 10px; }
.dashboard-chart-tooltip b { color: #263238; }
.pipeline-subject-search.is-icon-only { width: 34px; min-width: 34px; padding-inline: 0; justify-content: center; }


/* NewsIA v2.44 — détection RSS + favicons natifs */
.source-favicon { width:20px; height:20px; flex:0 0 20px; display:inline-flex; align-items:center; justify-content:center; border-radius:5px; overflow:hidden; background:rgba(145,153,159,.10); color:var(--grey); vertical-align:middle; }
.source-favicon img { width:100%; height:100%; object-fit:contain; display:block; }
.source-favicon > i { display:none; font-size:.72rem; }
.source-favicon.is-broken > i, .source-favicon-fallback > i { display:block; }
.site-name { display:inline-flex; align-items:center; gap:6px; min-width:0; }
.admin-rss-name { display:inline-flex; align-items:center; gap:8px; }
.rss-discovery-status { min-height:0; margin-top:7px; display:flex; align-items:center; gap:5px; min-width:0; color:var(--grey); font-size:.76rem; line-height:1.3; white-space:nowrap; }
.rss-discovery-status:empty { display:none; }
.rss-discovery-status img { width:22px; height:22px; object-fit:contain; border-radius:5px; }
.rss-discovery-status span { min-width:0; }
.rss-discovery-status a { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; text-decoration:underline; text-underline-offset:2px; }
.rss-discovery-status.is-success { color:#4e7f27; }
.rss-discovery-status.is-error { color:#ad4646; }
.rss-discovery-status.is-loading { color:var(--blue); }


/* v2.46 — ajustements badges / administration */
p.admin-help-text {
    margin-top: 0;
    margin-bottom: 0;
}

.badge,
.planner-count-badge {
    line-height: 1;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.seriousness-badge .manual-source-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: 1px;
    flex: 0 0 16px;
    line-height: 1;
    font-size: .68rem;
}


/* NewsIA v2.49 : compteur de sujets prêts + revue des Articles liés */
.queue-subject-counters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.queue-subject-counters h3 { margin: 0; }
.queue-publishable-counter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid rgba(0, 163, 224, .24);
    border-radius: 999px;
    background: rgba(0, 163, 224, .07);
    color: #087fae;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: .16s ease;
}
.queue-publishable-counter strong { color: inherit; }
.queue-publishable-counter:hover,
.queue-publishable-counter:focus-visible {
    border-color: rgba(0,163,224,.42);
    background: rgba(0,163,224,.11);
    outline: none;
}
.queue-publishable-counter.is-active {
    border-color: rgba(115,201,45,.58);
    background: rgba(115,201,45,.13);
    color: #4e8f17;
    box-shadow: 0 0 0 3px rgba(115,201,45,.08);
}
.published-related { margin-top: 9px; }
.published-related summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: #66747c;
    font-size: .82rem;
    font-weight: 700;
    list-style: none;
}
.published-related summary::-webkit-details-marker { display: none; }
.published-related summary span {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    background: rgba(0, 163, 224, .08);
    color: #007fac;
    font-size: .72rem;
}
.published-related-body { margin-top: 7px; }
.published-related-list { margin: 0; padding-left: 18px; display: grid; gap: 5px; }
.published-related-list li { color: #5d6970; font-size: .82rem; }
.published-related-list li a { color: #2d596a; text-decoration: none; }
.published-related-list li a:hover { text-decoration: underline; }
.published-related-list li span { margin-left: 6px; color: var(--grey); font-size: .74rem; }
.published-related-list li.is-unresolved a { color: #a06a12; }
.published-related-empty { color: var(--grey); font-size: .8rem; }
.published-item-actions { gap: 7px; flex-wrap: wrap; }
@media (max-width: 767px) {
    .queue-subject-counters { align-items: flex-start; }
    .queue-publishable-counter { white-space: normal; }
}

/* v2.50 — médias mixtes, choix sujet publié et consommation IA */
.publication-video-field input[type="url"]{width:100%;box-sizing:border-box;}
.published-subject-choice-card{max-width:620px;width:min(620px,calc(100% - 28px));}
.published-subject-existing{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid rgba(0,163,224,.22);border-radius:12px;background:rgba(0,163,224,.05);margin:14px 0;}
.published-subject-existing>span,.published-subject-new-label{font-size:.82rem;color:#66747c;font-weight:700;}
.published-subject-existing-list{display:flex;flex-direction:column;gap:7px;}
.published-subject-candidate{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid rgba(145,153,159,.28);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;}
.published-subject-candidate:hover,.published-subject-candidate:has(input:checked){border-color:rgba(0,163,224,.58);background:rgba(0,163,224,.045);box-shadow:0 0 0 2px rgba(0,163,224,.06);}
.published-subject-candidate input{margin:0;accent-color:#00A3E0;}
.published-subject-candidate-copy{display:flex;min-width:0;flex-direction:column;gap:2px;}
.published-subject-candidate-copy strong{font-size:.9rem;line-height:1.3;color:#263238;overflow-wrap:anywhere;}
.published-subject-candidate-copy small{font-size:.74rem;line-height:1.25;color:#7a878d;overflow-wrap:anywhere;}
.published-subject-confidence{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:3px 6px;border-radius:999px;background:rgba(115,201,45,.12);color:#4f8f20;font-size:.72rem;font-weight:800;white-space:nowrap;}
.published-subject-new-label{display:block;margin:10px 0 6px;}
#published-subject-new-name{width:100%;box-sizing:border-box;}
.published-subject-new-help{margin:6px 0 0;font-size:.78rem;line-height:1.35;color:#7a878d;}
.published-subject-choice-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px;}
.dashboard-ai-usage-grid,.ai-consumption-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.dashboard-ai-usage-grid>div,.ai-consumption-cards>div{padding:14px;border:1px solid rgba(145,153,159,.2);border-radius:14px;background:rgba(255,255,255,.65);display:flex;flex-direction:column;gap:3px;}
.dashboard-ai-usage-grid strong,.ai-consumption-cards strong{font-size:1.45rem;color:#203f4d;line-height:1.1;}
.dashboard-ai-usage-grid span,.ai-consumption-cards span{font-size:.78rem;color:#687880;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.dashboard-ai-usage-grid small,.ai-consumption-cards small{color:#7d8b91;}
.ai-consumption-admin{margin-top:18px;border:1px solid rgba(0,163,224,.18);border-radius:16px;padding:16px;background:rgba(0,163,224,.035);}
.ai-consumption-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;}.ai-consumption-heading>div{display:flex;gap:8px;align-items:center;color:#00A3E0;}
.ai-consumption-table-wrap{overflow-x:auto;margin-top:14px}.ai-consumption-table{width:100%;border-collapse:collapse;font-size:.86rem}.ai-consumption-table th,.ai-consumption-table td{padding:8px 9px;border-bottom:1px solid rgba(145,153,159,.16);text-align:right;white-space:nowrap}.ai-consumption-table th:first-child,.ai-consumption-table td:first-child{text-align:left;}
.published-media-badge{display:inline-flex;align-items:center;gap:5px;margin-left:7px;font-size:.74rem;font-weight:700;color:#00A3E0;}
@media(max-width:767px){.dashboard-ai-usage-grid,.ai-consumption-cards{grid-template-columns:1fr}.published-subject-choice-actions>*{width:100%}.ai-consumption-heading{align-items:flex-start;flex-direction:column}}

/* NewsIA v2.51 : déliaison d'une source d'un article publié */
.published-related-list { padding-left: 0; list-style: none; }
.published-related-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid rgba(145,153,159,.12); }
.published-related-list li:last-child { border-bottom: 0; }
.published-related-copy { min-width: 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.published-related-copy a { min-width: 0; overflow-wrap: anywhere; }
.published-related-unlink { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 30px; padding: 5px 9px; border: 1px solid rgba(196,67,67,.24); border-radius: 9px; background: rgba(196,67,67,.06); color: #a13b3b; font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.published-related-unlink:hover { background: rgba(196,67,67,.12); border-color: rgba(196,67,67,.4); }
.published-related-unlink:disabled { opacity: .55; cursor: default; }
@media (max-width: 767px) { .published-related-list li { align-items: flex-start; } .published-related-unlink { padding: 5px 7px; } }


/* v2.52 — créneaux réservés du Planificateur */
.planner-day-placeholder-btn { width:100%; justify-content:center; border:1px dashed rgba(145,153,159,.42); background:rgba(145,153,159,.06); color:#68757c; }
.planner-day-placeholder-btn:hover, .planner-day-placeholder-btn:focus-visible { background:rgba(145,153,159,.12); border-color:rgba(145,153,159,.65); }
.planner-item.is-placeholder { min-height:58px; border:1px dashed rgba(145,153,159,.42); border-left:4px solid var(--grey); background:rgba(145,153,159,.055); }
.planner-item.is-placeholder .planner-item-main { min-height:34px; display:flex; align-items:center; }
.planner-item.is-placeholder .planner-item-meta { margin-bottom:0; }
.planner-item.is-placeholder .planner-item-actions { padding-top:6px; border-top:0; }


/* NewsIA v2.56 — choix d'un sujet publié : mobile réellement scrollable */
.published-subject-choice-card{
    max-height:min(88dvh,760px);
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.published-subject-existing{
    min-height:0;
}
.published-subject-existing-list{
    max-height:min(38dvh,320px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
}
.published-subject-choice-actions{
    flex:0 0 auto;
    position:sticky;
    bottom:0;
    padding-top:12px;
    background:inherit;
}
@media(max-width:767px){
    .published-subject-choice-card{
        width:calc(100% - 20px);
        max-height:calc(100dvh - 20px);
        padding:18px 14px 14px;
    }
    .published-subject-existing-list{
        max-height:34dvh;
        padding-right:4px;
    }
    .published-subject-choice-actions{
        margin-top:12px;
        padding-top:10px;
        border-top:1px solid rgba(145,153,159,.18);
    }
}


/* NewsIA v2.61 — compteur global des brouillons de l’Atelier éditorial */
.editorial-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.editorial-title-row h2{margin-right:0}


/* v2.62 — assistant de prompt d’illustration dans Préparer la publication */
.publication-illustration-button{width:100%;justify-content:center;margin-top:8px;border-color:rgba(115,201,45,.28);background:rgba(115,201,45,.07);color:#4f7f22}
.publication-illustration-button:hover{background:rgba(115,201,45,.14);border-color:rgba(115,201,45,.48)}
.illustration-prompt-modal{display:none;align-items:center;justify-content:center;padding:24px;background:rgba(6,14,20,.72)}
.illustration-prompt-modal.is-open{display:flex}
.illustration-prompt-box{width:min(880px,100%);max-height:min(90vh,860px);overflow:auto;padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.illustration-prompt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.illustration-prompt-head h3{margin:5px 0 7px;color:#26343c;text-align:left}
.illustration-prompt-head p{margin:0;color:#64717c;line-height:1.5}
.illustration-prompt-close{flex:0 0 auto;min-width:42px;padding:9px 12px}
.illustration-prompt-box textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid rgba(145,153,159,.3);border-radius:11px;padding:11px 12px;background:#fff;font:inherit}
.illustration-prompt-preview-wrap{margin-top:16px}
.illustration-prompt-preview-wrap>span{display:block;margin-bottom:7px;font-size:.82rem;font-weight:800;color:#5c6872}
.illustration-prompt-preview{max-height:260px;overflow:auto;margin:0;padding:14px 16px;border:1px solid #dfe6eb;border-radius:12px;background:#f7f9fa;color:#2c3740;font-family:'Trebuchet MS',Arial,sans-serif;font-size:.88rem;line-height:1.55;white-space:pre-wrap}
.illustration-prompt-actions{margin-top:18px}
@media(max-width:700px){.illustration-prompt-modal{padding:12px}.illustration-prompt-box{padding:18px;border-radius:16px}.illustration-prompt-head{gap:10px}}


/* NewsIA v3.15 — ajout manuel mobile fixé au viewport */
.manual-article-sticky-sentinel {
    display: none;
}
@media (max-width: 767px) {
    .manual-article-sticky-sentinel {
        display: block;
        width: 100%;
        height: 1px;
        margin: 0;
        padding: 0;
        pointer-events: none;
    }

    .manual-article-adder {
        position: relative;
        z-index: 30;
        width: auto;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0 0 14px;
        padding: 11px 12px;
        border: 1px solid rgba(0,163,224,.14);
        border-left: 4px solid #73C92D;
        border-radius: 14px;
        background: rgba(255,255,255,.97);
        box-shadow: 0 8px 22px rgba(35,76,89,.12);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    /* Le bloc est déplacé dans body pendant le scroll afin qu'aucun parent avec
       backdrop-filter/transform ne puisse perturber son repère de positionnement. */
    .manual-article-adder.is-viewport-fixed {
        position: fixed !important;
        top: max(var(--manual-article-fixed-top, 8px), env(safe-area-inset-top)) !important;
        left: var(--manual-article-fixed-left, 12px) !important;
        width: var(--manual-article-fixed-width, calc(100vw - 24px)) !important;
        max-width: none !important;
        /* Reste au-dessus du contenu courant, mais toujours sous les modales.
           .modal-overlay démarre à 1000, Story Mode à 9999 et le résumé à 12000. */
        z-index: 900;
        margin: 0 !important;
        box-sizing: border-box;
        background: #fff;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: 0 12px 32px rgba(35,76,89,.20);
        transform: translate3d(0,0,0);
        -webkit-transform: translate3d(0,0,0);
        will-change: transform;
        isolation: isolate;
    }

    /* Compatibilité avec l'ancien état mis en cache. */
    .manual-article-adder.is-stuck {
        width: auto;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .manual-article-adder .u-style-018 {
        margin: 0 0 8px;
        padding-bottom: 7px;
        font-size: .92rem;
        text-align: left;
    }

    .manual-article-adder .u-style-019 {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 7px;
        margin-bottom: 0;
    }

    .manual-article-adder #manual-url {
        width: 100%;
        min-width: 0;
        height: 42px;
        box-sizing: border-box;
    }

    .manual-article-adder #btn-add-queue {
        min-height: 42px;
        padding-inline: 13px;
        white-space: nowrap;
    }
}

@media (max-width: 420px) {
    .manual-article-adder {
        padding: 10px;
    }
    .manual-article-adder .u-style-019 {
        grid-template-columns: minmax(0, 1fr) 46px;
    }
    .manual-article-adder #btn-add-queue {
        width: 46px;
        min-width: 46px;
        padding: 0;
        font-size: 0;
    }
    .manual-article-adder #btn-add-queue i {
        margin: 0;
        font-size: 1rem;
    }
}


/* NewsIA v2.71 — actions Sujet séparées + sérieux centré sur mobile */
.queue-seriousness-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}
.queue-summary-actions .pipeline-subject-action-group {
    display: grid;
    grid-template-columns: repeat(4, 34px);
    gap: 7px;
    flex: 0 0 auto;
}
.queue-summary-actions .pipeline-subject-action-group .btn-small {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    margin: 0;
    padding: 0;
    border-radius: 8px;
    justify-content: center;
    flex: none;
}
.queue-summary-actions .pipeline-subject-action-group .btn-small i {
    margin: 0;
}
@media (max-width: 767px) {
    .pipeline-active-subject .queue-summary-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 10px;
        width: 100%;
        justify-content: stretch;
    }
    .pipeline-active-subject .queue-mobile-left-stack {
        display: flex;
        min-width: 0;
        flex-direction: column;
        align-items: flex-start;
        gap: 7px;
    }
    .pipeline-active-subject .queue-seriousness-wrap {
        width: auto;
        justify-content: flex-start;
    }
    .pipeline-active-subject .queue-seriousness-wrap .seriousness-badge {
        margin: 0;
    }
    .queue-summary-actions .pipeline-subject-action-group {
        grid-template-columns: repeat(2, 44px);
        grid-template-rows: repeat(2, 44px);
        gap: 8px;
        justify-self: end;
    }
    .queue-summary-actions .pipeline-subject-action-group .btn-small {
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        border-radius: 10px;
        font-size: .95rem;
    }
    .pipeline-active-subject .queue-chevron {
        display: none;
    }
}


/* NewsIA v2.72 — médias sources visibles dans les cartes Sujet */
.queue-subject-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.queue-subject-meta-copy {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.queue-source-sites {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
.queue-source-site {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 22px;
    padding: 2px 7px 2px 5px;
    border: 1px solid rgba(145, 153, 159, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    color: #56646c;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.queue-source-site img {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    object-fit: contain;
    border-radius: 3px;
}
.queue-source-site > span {
    display: block;
    min-width: 0;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
 .queue-source-sites-mobile { display: none; }
.queue-mobile-left-stack { display: contents; }
@media (max-width: 767px) {
    .queue-subject-meta {
        gap: 6px;
    }
    .queue-source-sites-desktop { display: none; }
    .queue-source-sites-mobile {
        display: block;
        width: 100%;
        min-width: 0;
    }
    .queue-source-sites-mobile .queue-source-sites {
        width: 100%;
        padding-left: 0;
        justify-content: flex-start;
    }
    .queue-source-site {
        font-size: .70rem;
        max-width: 100%;
    }
    .queue-source-site > span {
        max-width: min(160px, 52vw);
    }
}

/* NewsIA v2.73 - synthèses à préparer directement dans le Planificateur */
.planner-item.is-unplanned-synthesis {
    border-left-color: var(--green);
    cursor: default;
}
.planner-item.is-unplanned-synthesis .planner-item-copy small {
    display: block;
    margin-top: 4px;
    color: var(--grey);
    font-size: .78rem;
    line-height: 1.35;
}

/* NewsIA v2.74 — URL maître des sites sources + consignes ponctuelles de synthèse */
.source-sites-admin-header { align-items:flex-start; gap:18px; }
.source-sites-admin-header > div { min-width:0; flex:1; }
.source-sites-admin-help { margin:7px 0 0; max-width:850px; }
.source-sites-status { min-height:0; margin:10px 0; color:var(--grey); font-size:.82rem; }
.source-sites-status:empty { display:none; }
.source-sites-loading, .source-sites-empty { padding:18px 0; color:var(--grey); }
.source-sites-summary { display:flex; flex-wrap:wrap; gap:8px 16px; margin:8px 0 14px; font-size:.82rem; color:var(--grey); }
.source-sites-summary span { display:inline-flex; align-items:center; gap:5px; }
.source-sites-summary strong { color:var(--blue); }
.source-sites-table-wrap { overflow-x:auto; border:1px solid rgba(145,153,159,.18); border-radius:14px; }
.source-sites-table { width:100%; border-collapse:collapse; }
.source-sites-table th, .source-sites-table td { padding:11px 12px; text-align:left; vertical-align:middle; border-bottom:1px solid rgba(145,153,159,.13); }
.source-sites-table tr:last-child td { border-bottom:0; }
.source-sites-table th { font-size:.76rem; color:var(--grey); font-weight:700; background:rgba(145,153,159,.06); }
.source-site-master-cell { min-width:260px; max-width:560px; }
.source-site-master-cell a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--blue); text-decoration:none; }
.source-site-master-cell a:hover { text-decoration:underline; text-underline-offset:2px; }
.source-site-action-cell { width:1%; white-space:nowrap; text-align:right !important; }
.source-site-add-rss { display:inline-flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; }

.subject-rename-modal-content { width:min(620px,92vw); max-height:88dvh; overflow:auto; padding:24px; }
.subject-rename-intro { margin:4px 0 18px; color:var(--grey); }
.subject-rename-intro strong { color:var(--text, #27323a); }
.subject-rename-input { width:100%; box-sizing:border-box; border:1px solid rgba(145,153,159,.3); border-radius:12px; padding:12px 14px; font:inherit; background:rgba(255,255,255,.88); color:inherit; }
.subject-rename-input:focus { outline:none; border-color:rgba(0,163,224,.65); box-shadow:0 0 0 3px rgba(0,163,224,.09); }

.synthesis-instructions-modal-content { width:min(700px,92vw); max-height:88dvh; overflow:auto; padding:24px; }
.synthesis-instructions-intro { margin:4px 0 18px; color:var(--grey); }
.synthesis-instructions-intro strong { color:var(--text, #27323a); }
.synthesis-instructions-label { display:flex; align-items:baseline; gap:8px; margin-bottom:7px; font-weight:700; }
.synthesis-instructions-label span { color:var(--grey); font-size:.75rem; font-weight:400; }
#synthesis-instructions-text { width:100%; min-height:150px; resize:vertical; box-sizing:border-box; border:1px solid rgba(145,153,159,.3); border-radius:12px; padding:12px 14px; font:inherit; line-height:1.45; background:rgba(255,255,255,.88); color:inherit; }
#synthesis-instructions-text:focus { outline:none; border-color:rgba(0,163,224,.65); box-shadow:0 0 0 3px rgba(0,163,224,.09); }
.synthesis-instructions-help { display:flex; align-items:flex-start; gap:8px; margin:10px 0 4px; color:var(--grey); font-size:.8rem; line-height:1.45; }
.synthesis-instructions-help i { margin-top:2px; color:var(--blue); }

@media (max-width: 700px) {
  .source-sites-admin-header { flex-direction:column; align-items:stretch; }
  .source-sites-admin-header #btn-refresh-source-sites { width:100%; }
  .source-site-master-cell { min-width:180px; max-width:58vw; }
  .source-site-action-cell { width:auto; }
  .source-site-add-rss span { display:none; }
  .source-site-add-rss { width:36px; height:36px; padding:0; border-radius:10px; }
  .subject-rename-modal-content, .synthesis-instructions-modal-content { width:96vw; padding:20px 14px; }
}


/* v2.77 — aperçu du flux directement depuis le formulaire d'ajout */
.rss-url-form-row { display:flex; align-items:stretch; gap:8px; width:100%; }
.rss-url-form-row #rss-url { flex:1 1 auto; min-width:0; padding:10px; border:1px solid var(--grey); border-radius:5px; font-family:'Trebuchet MS', sans-serif; }
.rss-url-form-row #rss-url:focus { border-color:var(--blue); outline:none; }
.rss-form-preview-button { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; }
@media (max-width: 640px) {
  .rss-url-form-row { flex-direction:column; }
  .rss-form-preview-button { width:100%; min-height:42px; }
}

/* NewsIA v2.78 — raccourci URL maître + accès site + ciblage du flux ajouté */
.rss-admin-header-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.source-site-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.source-site-open,
.source-site-add-rss {
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:30px;
  padding:5px 10px;
  margin-top:5px;
  border:0;
  border-radius:10px;
  background-color:var(--grey);
  color:#fff;
  font:700 .8em 'Trebuchet MS', sans-serif;
  line-height:normal;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease, opacity .2s ease, box-shadow .2s ease;
}
.source-site-open:hover,
.source-site-add-rss:hover { transform:translateY(-1px); opacity:.92; text-decoration:none; }
.source-site-open:focus-visible,
.source-site-add-rss:focus-visible { outline:3px solid rgba(0,163,224,.22); outline-offset:2px; }
.rss-table-row.is-newly-added { outline-color:rgba(115,201,45,.75); box-shadow:inset 4px 0 0 rgba(115,201,45,.95), 0 0 0 3px rgba(115,201,45,.10); background:rgba(115,201,45,.09); }
.rss-table-row.is-newly-added:hover { outline-color:rgba(115,201,45,.82); box-shadow:inset 4px 0 0 rgba(115,201,45,.95), 0 0 0 3px rgba(115,201,45,.12); background:rgba(115,201,45,.11); }
@media (max-width: 700px) {
  .rss-admin-header-actions { width:100%; justify-content:stretch; }
  .rss-admin-header-actions .btn-small { flex:1 1 180px; justify-content:center; }
  .source-site-actions { justify-content:flex-start; }
  .source-site-open span,
  .source-site-add-rss span { display:none; }
  .source-site-open,
  .source-site-add-rss { width:36px; height:36px; padding:0; border-radius:10px; }
}

/* v2.79 — confirmation visuelle d'une URL ajoutée manuellement dans Sujets */
.pipeline-manual-source-focus {
    animation: newsiaManualSourceFocus 2.6s ease-out;
}

@keyframes newsiaManualSourceFocus {
    0%, 22% {
        box-shadow: 0 0 0 3px rgba(0, 163, 224, .28), 0 12px 30px rgba(0, 163, 224, .14);
    }
    100% {
        box-shadow: none;
    }
}

/* NewsIA v2.87 — notifications non intrusives */
.newsia-toast-stack {
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:12000;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
  max-width:min(420px, calc(100vw - 28px));
  pointer-events:none;
}
.newsia-toast {
  display:flex;
  align-items:flex-start;
  gap:10px;
  max-width:100%;
  padding:12px 14px;
  border:1px solid rgba(115,201,45,.30);
  border-radius:13px;
  background:rgba(255,255,255,.97);
  color:#334047;
  box-shadow:0 12px 32px rgba(38,50,56,.18);
  font:700 .84rem/1.4 'Trebuchet MS', sans-serif;
  opacity:0;
  transform:translateY(10px) scale(.98);
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:auto;
}
.newsia-toast.is-visible { opacity:1; transform:translateY(0) scale(1); }
.newsia-toast > i { margin-top:2px; color:var(--green); }
.newsia-toast.is-info { border-color:rgba(0,163,224,.30); }
.newsia-toast.is-info > i { color:var(--blue); }
.newsia-toast.is-error { border-color:rgba(190,58,58,.28); }
.newsia-toast.is-error > i { color:#b83d3d; }
@media (max-width:700px) {
  .newsia-toast-stack { right:14px; bottom:14px; left:14px; align-items:stretch; max-width:none; }
  .newsia-toast { width:auto; }
}

/* NewsIA v2.84 — sélection manuelle du fournisseur IA */
.ai-provider-selector { margin-bottom:16px; }
.ai-provider-selector select { width:100%; max-width:440px; }
.ai-provider-panel {
    margin:14px 0;
    padding:16px;
    border:1px solid rgba(145,153,159,.20);
    border-radius:14px;
    background:rgba(255,255,255,.52);
}
.ai-provider-panel[hidden] { display:none !important; }
.ai-provider-panel .u-style-080 { margin-top:0; }
.ai-active-provider-note {
    display:flex;
    align-items:center;
    gap:8px;
    margin:10px 0 18px;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(115,201,45,.09);
    border:1px solid rgba(115,201,45,.18);
    font-size:.86rem;
}
.ai-active-provider-note i { color:var(--green); }
@media (max-width:700px) {
    .ai-provider-selector select { max-width:none; }
    .ai-provider-panel { padding:14px 12px; }
}


/* NewsIA v2.85 — accès IA visible immédiatement dans l’administration */
.ai-settings-primary {
    border-color: rgba(0,163,224,.28);
    background: linear-gradient(145deg, rgba(0,163,224,.055), rgba(115,201,45,.035));
}
.ai-settings-primary .ai-provider-selector {
    padding: 14px;
    border: 1px solid rgba(0,163,224,.18);
    border-radius: 14px;
    background: rgba(255,255,255,.72);
}
.ai-settings-primary .ai-provider-selector label {
    font-size: 1rem;
    color: var(--blue);
}
.ai-settings-primary .ai-provider-selector select {
    min-height: 46px;
    font-size: 1rem;
    font-weight: 700;
}
.ai-provider-save-row {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 14px;
    margin: -2px 0 14px;
}
.ai-provider-save-row small { color: var(--grey); }
@media (max-width:700px) {
    .ai-provider-save-row { align-items:stretch; }
    .ai-provider-save-button { width:100%; }
}

/* NewsIA v2.86 — onglet IA autonome et mise en page dédiée */
.ai-admin-form {
    display:flex;
    flex-direction:column;
    gap:18px;
}

.ai-admin-hero {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    padding:20px 22px;
    border:1px solid rgba(0,163,224,.22);
    border-radius:20px;
    background:
        radial-gradient(circle at 12% 15%, rgba(0,163,224,.12), transparent 34%),
        radial-gradient(circle at 88% 90%, rgba(115,201,45,.10), transparent 34%),
        rgba(255,255,255,.72);
    box-shadow:0 12px 30px rgba(29,65,84,.06);
}
.ai-admin-hero-icon {
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:rgba(0,163,224,.10);
    border:1px solid rgba(0,163,224,.18);
    color:var(--blue);
    font-size:1.45rem;
}
.ai-admin-eyebrow {
    display:block;
    margin-bottom:3px;
    color:var(--green);
    font-size:.76rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.ai-admin-hero-copy h2 {
    margin:0;
    color:#203f4d;
    font-size:1.45rem;
}
.ai-admin-hero-copy p {
    margin:6px 0 0;
    color:#687880;
    line-height:1.5;
}
.ai-current-provider-badge {
    min-width:150px;
    padding:11px 14px;
    border-radius:14px;
    background:rgba(115,201,45,.09);
    border:1px solid rgba(115,201,45,.22);
    display:flex;
    flex-direction:column;
    gap:2px;
    align-items:flex-start;
}
.ai-current-provider-badge span {
    color:#77868c;
    font-size:.7rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.ai-current-provider-badge strong {
    color:#385646;
    font-size:.95rem;
}

.ai-engine-section {
    display:grid;
    grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);
    gap:16px 18px;
    align-items:start;
}
.ai-engine-section > .u-style-075,
.ai-engine-section > .admin-help-text,
.ai-engine-section > .ai-active-provider-note,
.ai-engine-section > .ai-consumption-admin {
    grid-column:1 / -1;
}
.ai-engine-section > .u-style-075 { margin-bottom:0; }
.ai-engine-section > .admin-help-text { margin-top:-4px; }
.ai-engine-section .ai-provider-selector {
    grid-column:1;
    margin:0;
    min-height:100%;
    padding:16px;
    border:1px solid rgba(0,163,224,.18);
    border-radius:16px;
    background:rgba(0,163,224,.045);
}
.ai-engine-section .ai-provider-selector label {
    display:block;
    margin-bottom:7px;
    color:#31515f;
    font-size:.82rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.035em;
}
.ai-engine-section .ai-provider-selector select {
    width:100%;
    max-width:none;
    min-height:48px;
    font-size:1rem;
    font-weight:800;
}
.ai-engine-section .ai-provider-selector small {
    display:block;
    margin-top:9px;
    line-height:1.45;
}
.ai-engine-section .ai-provider-panel {
    grid-column:2;
    grid-row:3;
    margin:0;
    padding:16px;
    border-radius:16px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(145,153,159,.20);
    box-shadow:0 8px 20px rgba(44,68,80,.04);
}
.ai-engine-section .ai-provider-panel .u-style-080 {
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 14px;
    color:#31515f;
}
.ai-engine-section .ai-provider-panel .form-group:last-child { margin-bottom:0; }
.ai-engine-section .ai-active-provider-note {
    margin:0;
}
.ai-engine-section .ai-consumption-admin {
    margin-top:0;
    background:rgba(255,255,255,.62);
}

.ai-prompts-section .form-group:first-of-type {
    margin-top:14px;
    padding:14px;
    border-radius:14px;
    background:rgba(0,163,224,.04);
    border:1px solid rgba(0,163,224,.14);
}
.ai-prompts-section #prompt_selector {
    min-height:44px;
    font-weight:700;
}
.ai-prompts-section .prompt-view-container {
    margin-top:14px;
    padding:14px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:14px;
    background:rgba(255,255,255,.64);
}
.ai-prompts-section .prompt-textarea {
    margin-top:10px;
    min-height:260px;
}

.ai-filtering-section .form-group {
    margin-bottom:0;
    padding:14px;
    border-radius:14px;
    background:rgba(115,201,45,.045);
    border:1px solid rgba(115,201,45,.16);
}

.ai-tab-save-bar {
    position:sticky;
    bottom:12px;
    z-index:12;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:13px 14px;
    border-radius:16px;
    background:rgba(248,251,252,.94);
    border:1px solid rgba(0,163,224,.22);
    box-shadow:0 12px 30px rgba(27,55,70,.14);
    backdrop-filter:blur(12px);
}
.ai-tab-save-bar > div {
    display:flex;
    flex-direction:column;
    gap:2px;
}
.ai-tab-save-bar strong { color:#284a59; }
.ai-tab-save-bar small { color:#77868c; }
.ai-tab-save-bar .btn-submit { margin:0; white-space:nowrap; }

@media (max-width:800px) {
    .ai-admin-hero {
        grid-template-columns:auto 1fr;
        align-items:start;
        padding:17px;
    }
    .ai-current-provider-badge {
        grid-column:1 / -1;
        width:100%;
        min-width:0;
    }
    .ai-engine-section {
        grid-template-columns:1fr;
    }
    .ai-engine-section > .u-style-075,
    .ai-engine-section > .admin-help-text,
    .ai-engine-section > .ai-provider-selector,
    .ai-engine-section > .ai-provider-panel,
    .ai-engine-section > .ai-active-provider-note,
    .ai-engine-section > .ai-consumption-admin {
        grid-column:1;
        grid-row:auto;
    }
    .ai-tab-save-bar {
        align-items:stretch;
        flex-direction:column;
        bottom:8px;
    }
    .ai-tab-save-bar .btn-submit { width:100%; }
}

/* NewsIA v2.88 — refonte Général + aide fournisseurs IA */
.general-admin-form {
    display:flex;
    flex-direction:column;
    gap:18px;
}
.general-admin-form .admin-section {
    margin:0;
    padding:20px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:18px;
    background:rgba(255,255,255,.72);
    box-shadow:0 10px 26px rgba(31,65,80,.045);
}
.general-admin-hero {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    padding:20px 22px;
    border:1px solid rgba(0,163,224,.22);
    border-radius:20px;
    background:
        radial-gradient(circle at 12% 15%, rgba(0,163,224,.12), transparent 34%),
        radial-gradient(circle at 88% 90%, rgba(115,201,45,.10), transparent 34%),
        rgba(255,255,255,.72);
    box-shadow:0 12px 30px rgba(29,65,84,.06);
}
.general-admin-hero-icon {
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:rgba(0,163,224,.10);
    border:1px solid rgba(0,163,224,.18);
    color:var(--blue);
    font-size:1.45rem;
}
.general-admin-eyebrow {
    display:block;
    margin-bottom:3px;
    color:var(--green);
    font-size:.76rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.general-admin-hero-copy h2 {
    margin:0;
    color:#203f4d;
    font-size:1.45rem;
}
.general-admin-hero-copy p {
    margin:6px 0 0;
    color:#687880;
    line-height:1.5;
}
.general-publication-badge {
    min-width:170px;
    padding:11px 14px;
    border-radius:14px;
    background:rgba(115,201,45,.09);
    border:1px solid rgba(115,201,45,.22);
    display:flex;
    flex-direction:column;
    gap:2px;
    align-items:flex-start;
}
.general-publication-badge span {
    color:#77868c;
    font-size:.7rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.general-publication-badge strong { color:#385646; font-size:.95rem; }
.general-section-heading {
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:18px;
}
.general-section-icon {
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:var(--blue);
    background:rgba(0,163,224,.08);
    border:1px solid rgba(0,163,224,.15);
}
.general-section-heading h3 {
    margin:0 0 4px !important;
    padding:0 !important;
    border:0 !important;
    color:#31515f !important;
    font-size:1.08rem;
}
.general-section-heading p,
.general-section-description {
    margin:0;
    color:#687880;
    line-height:1.5;
}
.general-section-description { margin:-4px 0 16px; }
.general-card-grid {
    display:grid;
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    gap:14px;
}
.general-setting-card {
    padding:16px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:15px;
    background:rgba(248,251,252,.66);
}
.general-setting-card-title {
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:13px;
    color:#31515f;
}
.general-setting-card-title i { color:var(--blue); }
.general-setting-card .form-group { margin-bottom:0; }
.general-setting-card small,
.general-publication-card > small {
    display:block;
    margin-top:8px;
    color:#77868c;
    line-height:1.45;
}
.general-time-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.general-time-grid .form-group { margin:0; }
.general-cron-section .cron-operation-list { margin-top:2px; }
.general-cron-command { margin-top:15px; }
.general-bridge-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 14px;
}
.general-advanced-card {
    padding:13px 14px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:14px;
    background:rgba(248,251,252,.58);
}
.general-advanced-card > summary {
    display:flex;
    align-items:center;
    gap:8px;
    color:#31515f;
}
.general-backup-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);
    gap:14px;
    align-items:stretch;
}
.general-backup-grid .form-group { margin:0; }
.general-backup-toggle {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid rgba(115,201,45,.18);
    border-radius:14px;
    background:rgba(115,201,45,.045);
    cursor:pointer;
}
.general-backup-toggle input { width:auto; margin:0; }
.general-backup-toggle-icon {
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:rgba(115,201,45,.10);
    color:#4d8e22;
}
.general-backup-toggle span:last-child { display:flex; flex-direction:column; gap:3px; }
.general-backup-toggle strong { color:#385646; }
.general-backup-toggle small { color:#77868c; line-height:1.35; }
.general-tab-save-bar {
    position:sticky;
    bottom:12px;
    z-index:12;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:13px 14px;
    border-radius:16px;
    background:rgba(248,251,252,.94);
    border:1px solid rgba(0,163,224,.22);
    box-shadow:0 12px 30px rgba(27,55,70,.14);
    backdrop-filter:blur(12px);
}
.general-tab-save-bar > div { display:flex; flex-direction:column; gap:2px; }
.general-tab-save-bar strong { color:#284a59; }
.general-tab-save-bar small { color:#77868c; }
.general-tab-save-bar .btn-submit { margin:0; white-space:nowrap; }

.ai-engine-section > .ai-provider-key-help { grid-column:1 / -1; }
.ai-provider-key-help {
    margin-top:2px;
    padding:16px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:16px;
    background:rgba(248,251,252,.58);
}
.ai-provider-key-help-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:13px;
}
.ai-provider-key-help-heading h4 {
    margin:2px 0 0;
    color:#31515f;
    font-size:1rem;
}
.ai-provider-key-help-heading > small {
    max-width:500px;
    color:#77868c;
    line-height:1.4;
    text-align:right;
}
.ai-provider-guide-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.ai-provider-guide-card {
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
    padding:14px;
    border:1px solid rgba(145,153,159,.18);
    border-radius:14px;
    background:rgba(255,255,255,.78);
}
.ai-provider-guide-card.is-available { border-color:rgba(0,163,224,.18); }
.ai-provider-guide-card.is-planned { background:rgba(145,153,159,.045); }
.ai-provider-guide-top {
    display:flex;
    align-items:center;
    gap:10px;
}
.ai-provider-guide-top > div {
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.ai-provider-guide-icon {
    width:36px;
    height:36px;
    flex:0 0 36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    color:var(--blue);
    background:rgba(0,163,224,.08);
}
.ai-provider-guide-card p {
    flex:1 1 auto;
    margin:0;
    color:#687880;
    font-size:.84rem;
    line-height:1.5;
}
.ai-provider-status {
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 7px;
    border-radius:999px;
    font-size:.68rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.ai-provider-status.available { color:#39751a; background:rgba(115,201,45,.12); }
.ai-provider-status.planned { color:#6f7d83; background:rgba(145,153,159,.12); }
.ai-provider-guide-link {
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:36px;
    padding:0 11px;
    border-radius:10px;
    background:rgba(0,163,224,.08);
    border:1px solid rgba(0,163,224,.16);
    color:#007fae;
    text-decoration:none;
    font-size:.8rem;
    font-weight:800;
    transition:.18s ease;
}
.ai-provider-guide-link:hover { background:var(--blue); border-color:var(--blue); color:#fff; transform:translateY(-1px); }
.ai-provider-guide-link.secondary { background:rgba(145,153,159,.08); border-color:rgba(145,153,159,.18); color:#66757c; }
.ai-provider-guide-link.secondary:hover { background:#66757c; border-color:#66757c; color:#fff; }
.ai-provider-selector option:disabled { color:#91999F; }

@media (max-width:800px) {
    .general-admin-hero { grid-template-columns:auto 1fr; align-items:start; padding:17px; }
    .general-publication-badge { grid-column:1 / -1; width:100%; min-width:0; }
    .general-card-grid,
    .general-bridge-grid,
    .general-backup-grid { grid-template-columns:1fr; }
    .general-time-grid { grid-template-columns:1fr 1fr; }
    .general-tab-save-bar { align-items:stretch; flex-direction:column; bottom:8px; }
    .general-tab-save-bar .btn-submit { width:100%; }
    .ai-provider-key-help-heading { align-items:flex-start; flex-direction:column; }
    .ai-provider-key-help-heading > small { max-width:none; text-align:left; }
    .ai-provider-guide-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .general-time-grid { grid-template-columns:1fr; }
    .general-admin-form .admin-section { padding:16px; }
}

/* NewsIA v2.89 — fusion explicite des sujets + verrouillage */
.subject-merge-modal-content {
    width: min(760px, 92vw);
    max-height: 88dvh;
    overflow: auto;
    padding: 24px;
}
.subject-merge-intro {
    margin: 4px 0 18px;
    color: var(--grey);
    line-height: 1.55;
}
.subject-merge-existing {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}
.subject-merge-choice-card,
.subject-merge-custom-choice {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}
.subject-merge-choice-card {
    padding: 12px 14px;
    border: 1px solid rgba(145,153,159,.24);
    border-radius: 13px;
    background: rgba(255,255,255,.72);
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.subject-merge-choice-card:hover {
    border-color: rgba(0,163,224,.38);
    background: rgba(0,163,224,.05);
}
.subject-merge-choice-card:has(input:checked) {
    border-color: rgba(0,163,224,.55);
    background: rgba(0,163,224,.08);
    box-shadow: 0 0 0 3px rgba(0,163,224,.06);
}
.subject-merge-choice-card input,
.subject-merge-custom-choice input {
    accent-color: var(--blue, #00A3E0);
    flex: 0 0 auto;
}
.subject-merge-choice-card span {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-weight: 700;
    color: var(--text, #27323a);
}
.subject-merge-choice-card i { color: var(--blue, #00A3E0); }
.subject-merge-new-card {
    padding: 16px;
    border: 1px solid rgba(115,201,45,.25);
    border-radius: 15px;
    background: rgba(115,201,45,.045);
}
.subject-merge-new-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
.subject-merge-new-head > div {
    display: grid;
    gap: 3px;
}
.subject-merge-new-head strong { color: var(--text, #27323a); }
.subject-merge-new-head span { color: var(--grey); font-size: .86rem; line-height: 1.4; }
.subject-merge-suggest { flex: 0 0 auto; }
.subject-merge-custom-choice {
    margin-top: 10px;
    color: var(--text, #27323a);
    font-weight: 700;
    font-size: .9rem;
}

.pipeline-active-subject.is-subject-locked {
    border-color: rgba(145,153,159,.36);
    background: linear-gradient(145deg, rgba(145,153,159,.055), rgba(255,255,255,.76));
}
.pipeline-active-subject.is-subject-locked .queue-subject-title > .fa-lock {
    color: var(--grey, #91999F);
}
.pipeline-subject-action:disabled {
    opacity: .38;
    cursor: not-allowed;
    filter: grayscale(.25);
    transform: none !important;
}
.pipeline-subject-action:disabled:hover { transform: none !important; }
.subject-lock-action.is-locked {
    border-color: rgba(115,201,45,.38) !important;
    background: rgba(115,201,45,.10) !important;
    color: #4b8d17 !important;
}

@media (max-width: 700px) {
    .subject-merge-modal-content { width: 96vw; padding: 20px 14px; }
    .subject-merge-new-head { flex-direction: column; }
    .subject-merge-suggest { width: 100%; justify-content: center; }
}

/* NewsIA v2.93 — actualité planifiée sous forme d’accordéon sous l’article complet */
.publication-update-accordion {
    margin-top: 13px;
    padding: 0 !important;
    overflow: hidden;
    background: linear-gradient(145deg, rgba(0,163,224,.045), rgba(115,201,45,.028));
}
.publication-update-accordion > summary {
    list-style: none;
}
.publication-update-accordion > summary::-webkit-details-marker {
    display: none;
}
.publication-update-summary {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) 28px;
    align-items: center;
    gap: 11px;
    padding: 13px 14px;
    cursor: pointer;
    user-select: none;
}
.publication-update-summary:hover {
    background: rgba(0,163,224,.045);
}
.publication-update-summary:focus-visible {
    outline: 2px solid rgba(0,163,224,.28);
    outline-offset: -2px;
}
.publication-update-summary-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: rgba(0,163,224,.1);
    color: var(--blue);
}
.publication-update-summary-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.publication-update-summary-copy strong {
    color: #34434b;
    font-size: .9rem;
    line-height: 1.3;
}
.publication-update-chevron {
    display: grid;
    place-items: center;
    color: #7b878d;
    transition: transform .18s ease, color .18s ease;
}
.publication-update-accordion[open] .publication-update-chevron {
    transform: rotate(180deg);
    color: var(--blue);
}
.publication-update-body {
    padding: 0 15px 15px;
    border-top: 1px solid rgba(0,163,224,.12);
}
.publication-update-intro {
    margin: 13px 0 12px;
    color: #68757d;
    line-height: 1.45;
    font-size: .86rem;
}
.publication-update-body > label {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 11px 0 6px;
    color: #34434b;
    font-weight: 700;
    font-size: .86rem;
}
.publication-update-body > label .publication-field-hint {
    margin-left: auto;
    font-weight: 400;
}
@media (max-width: 620px) {
    .publication-update-summary {
        grid-template-columns: 34px minmax(0,1fr) 24px;
        gap: 9px;
        padding: 12px;
    }
    .publication-update-summary-icon {
        width: 32px;
        height: 32px;
        border-radius: 9px;
    }
    .publication-update-body {
        padding: 0 12px 13px;
    }
}

/* Bookmarklet : ajout d'une actualité depuis la barre de favoris */
.bookmarklet-helper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(145, 153, 159, 0.18);
}
.bookmarklet-helper-copy {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: #5d6670;
}
.bookmarklet-helper-copy > i { color: #00A3E0; font-size: 1.05rem; }
.bookmarklet-helper-copy span { display: grid; gap: 2px; }
.bookmarklet-helper-copy strong { color: #25313b; font-size: 0.92rem; }
.bookmarklet-helper-copy small { color: #91999F; line-height: 1.35; }
.newsia-bookmarklet-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 0 0 auto;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid rgba(0, 163, 224, 0.34);
    border-radius: 12px;
    background: rgba(0, 163, 224, 0.09);
    color: #008fc5;
    font-family: "Trebuchet MS", Arial, sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    cursor: grab;
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.newsia-bookmarklet-link:hover {
    transform: translateY(-1px);
    border-color: rgba(0, 163, 224, 0.55);
    background: rgba(0, 163, 224, 0.14);
}
.newsia-bookmarklet-link:active { cursor: grabbing; }
.page-bookmarklet {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    font-family: "Trebuchet MS", Arial, sans-serif;
    background:
        radial-gradient(circle at 12% 16%, rgba(0, 163, 224, 0.14), transparent 32%),
        radial-gradient(circle at 88% 18%, rgba(115, 201, 45, 0.12), transparent 30%),
        linear-gradient(145deg, #f7fafc, #edf3f7);
    box-sizing: border-box;
}
.bookmarklet-shell { width: min(520px, 100%); }
.bookmarklet-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-bottom: 14px;
    color: #00A3E0;
    font-weight: 800;
    font-size: 1.05rem;
}
.bookmarklet-card {
    padding: 26px;
    border: 1px solid rgba(145, 153, 159, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 18px 48px rgba(30, 48, 62, 0.12);
    text-align: center;
}
.bookmarklet-icon {
    width: 58px;
    height: 58px;
    margin: 0 auto 14px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: rgba(0, 163, 224, 0.1);
    color: #00A3E0;
    font-size: 1.45rem;
}
.bookmarklet-icon.is-success { background: rgba(115, 201, 45, 0.12); color: #5da91f; }
.bookmarklet-icon.is-error { background: rgba(194, 67, 67, 0.1); color: #b23b3b; }
.bookmarklet-icon.is-choice { background: rgba(145, 153, 159, 0.12); color: #67717b; }
.bookmarklet-card h1 { margin: 0 0 8px; color: #25313b; font-size: 1.28rem; }
.bookmarklet-card > p { margin: 0; color: #66717b; line-height: 1.5; }
.bookmarklet-conflict { margin-top: 20px; text-align: left; }
.bookmarklet-choice-intro { margin-bottom: 12px; color: #5f6871; font-size: 0.9rem; line-height: 1.45; }
.bookmarklet-choice-list { display: grid; gap: 8px; margin-bottom: 12px; }
.bookmarklet-choice-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(145, 153, 159, 0.18);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}
.bookmarklet-choice-option span { display: grid; gap: 2px; color: #25313b; }
.bookmarklet-choice-option small { color: #91999F; }
.bookmarklet-choice-button,
.bookmarklet-primary-action,
.bookmarklet-secondary-action {
    min-height: 42px;
    border-radius: 12px;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
}
.bookmarklet-choice-button { width: 100%; border: 0; padding: 10px 14px; }
.bookmarklet-choice-button.is-existing { background: #00A3E0; color: #fff; }
.bookmarklet-choice-button.is-new { margin-top: 9px; background: #73C92D; color: #fff; }
.bookmarklet-choice-separator {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0;
    color: #91999F;
    font-size: 0.78rem;
}
.bookmarklet-choice-separator::before,
.bookmarklet-choice-separator::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(145, 153, 159, 0.2);
}
.bookmarklet-new-subject-label { display: block; margin-bottom: 6px; color: #3a4650; font-size: 0.85rem; font-weight: 700; }
.bookmarklet-new-subject {
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    padding: 9px 11px;
    border: 1px solid rgba(145, 153, 159, 0.28);
    border-radius: 10px;
    background: #fff;
    color: #25313b;
    font: inherit;
}
.bookmarklet-actions { display: flex; gap: 10px; justify-content: center; margin-top: 20px; }
.bookmarklet-primary-action,
.bookmarklet-secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 14px;
    text-decoration: none;
}
.bookmarklet-primary-action { border: 0; background: #00A3E0; color: #fff; }
.bookmarklet-secondary-action { border: 1px solid rgba(145, 153, 159, 0.24); background: #fff; color: #5d6670; }
@media (max-width: 640px) {
    .bookmarklet-helper { align-items: stretch; flex-direction: column; }
    .newsia-bookmarklet-link { width: 100%; box-sizing: border-box; }
    .bookmarklet-actions { flex-direction: column; }
}


/* NewsIA v2.95 — rond flottant contextuel : retour / traitement IA / fusion */
#back-to-top.is-processing {
    display:flex;
    cursor:wait;
    background:linear-gradient(135deg, var(--blue), #168dc0);
}
#back-to-top.is-processing:hover {
    transform:none;
    background:linear-gradient(135deg, var(--blue), #168dc0);
}
.floating-processing-dots {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
}
.floating-processing-dots span {
    width:6px;
    height:6px;
    border-radius:50%;
    background:#fff;
    animation:newsia-floating-dot 1s infinite ease-in-out;
}
.floating-processing-dots span:nth-child(2) { animation-delay:.14s; }
.floating-processing-dots span:nth-child(3) { animation-delay:.28s; }
@keyframes newsia-floating-dot {
    0%, 60%, 100% { transform:translateY(0); opacity:.45; }
    30% { transform:translateY(-5px); opacity:1; }
}
#back-to-top.is-merge {
    display:flex;
    background:var(--blue);
    overflow:visible;
}
#back-to-top.is-merge .floating-action-count {
    position:absolute;
    top:-5px;
    right:-5px;
    display:grid;
    place-items:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border:2px solid #fff;
    border-radius:999px;
    background:var(--green);
    color:#fff;
    font:800 .68rem 'Trebuchet MS', sans-serif;
    box-sizing:border-box;
}

/* Administration > IA > Gestion des prompts : textarea pleine largeur. */
.ai-prompts-section .prompt-view-container {
    width:100%;
    max-width:none;
    box-sizing:border-box;
}
.ai-prompts-section .prompt-textarea {
    display:block;
    width:100%;
    max-width:none;
    box-sizing:border-box;
    resize:vertical;
}


/* NewsIA v2.96 — filtres de sujets et verrouillage des brouillons */
.queue-counter-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.queue-locked-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid rgba(145, 153, 159, .28);
    border-radius: 999px;
    background: rgba(145, 153, 159, .08);
    color: #66717a;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: .16s ease;
}
.queue-locked-filter strong {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    background: rgba(145,153,159,.14);
    color: inherit;
    font-size: .72rem;
}
.queue-locked-filter:hover,
.queue-locked-filter:focus-visible {
    border-color: rgba(0,163,224,.35);
    color: var(--blue);
    background: rgba(0,163,224,.08);
    outline: none;
}
.queue-locked-filter.is-active {
    border-color: rgba(0,163,224,.42);
    background: rgba(0,163,224,.12);
    color: #087fae;
    box-shadow: 0 0 0 3px rgba(0,163,224,.07);
}
.planner-item.is-locked {
    border-left-color: var(--grey) !important;
    background: linear-gradient(135deg, rgba(145,153,159,.08), #fff 48%);
}
.planner-item.is-locked .planner-item-copy h4::before {
    content: "\f023";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-right: 7px;
    color: var(--grey);
}
.planner-item-action-lock.is-locked {
    background: rgba(0,163,224,.11);
    border-color: rgba(0,163,224,.25);
    color: var(--blue);
}
.planner-item-action:disabled {
    opacity: .38;
    cursor: not-allowed;
    transform: none !important;
}
@media (max-width: 767px) {
    /* Seul le formulaire d'ajout manuel reste sticky. Le bookmarklet défile normalement. */
    .bookmarklet-helper {
        position: static;
        margin: 0 0 14px;
        padding: 12px;
        border: 1px solid rgba(145,153,159,.16);
        border-radius: 12px;
        background: rgba(255,255,255,.78);
    }
    .queue-counter-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

/* v2.98 — rapprochement visuel des sujets proches */
.queue-close-subjects {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 6px;
    color: #6d7880;
    font-size: .78rem;
}
.queue-close-subjects > i {
    color: var(--blue);
}
.queue-close-subject-chip {
    appearance: none;
    border: 1px solid rgba(0, 163, 224, .22);
    border-radius: 999px;
    background: rgba(0, 163, 224, .07);
    color: #087fae;
    padding: 3px 8px;
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    cursor: pointer;
    max-width: min(520px, 100%);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: .16s ease;
}
.queue-close-subject-chip:hover,
.queue-close-subject-chip:focus-visible {
    background: rgba(0, 163, 224, .13);
    border-color: rgba(0, 163, 224, .4);
    outline: none;
}
.pipeline-active-subject.is-proximity-selected {
    box-shadow: 0 0 0 3px rgba(0, 163, 224, .13), 0 12px 32px rgba(0, 0, 0, .06);
}
@media (max-width: 767px) {
    .queue-close-subjects {
        width: 100%;
        align-items: flex-start;
        min-width: 0;
    }
    .queue-close-subject-chip {
        display: block;
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        overflow-wrap: anywhere;
        word-break: break-word;
        text-align: left;
        line-height: 1.35;
        border-radius: 14px;
    }
}


/* NewsIA v3.00 — sources liées au Planificateur et comparaison de resynthèse */
.planner-pending-sources-button {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:7px;
    padding:5px 9px;
    border:1px solid rgba(0,163,224,.24);
    border-radius:999px;
    background:rgba(0,163,224,.08);
    color:#087fae;
    font:inherit;
    font-size:.76rem;
    font-weight:800;
    cursor:pointer;
}
.planner-pending-sources-button:hover,
.planner-pending-sources-button:focus-visible { background:rgba(0,163,224,.14); outline:none; }
.planner-source-revision-content { width:min(1180px, calc(100% - 28px)); max-height:92vh; overflow:auto; }
.planner-source-revision-meta { margin:4px 0 12px; color:#6d7880; }
.planner-source-revision-sources { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.planner-source-revision-source {
    display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:6px 9px;
    border:1px solid rgba(145,153,159,.2); border-radius:10px; background:#fff; color:#51616b;
    font-size:.78rem; text-decoration:none;
}
.planner-source-revision-source span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.planner-source-revision-explanation {
    margin:12px 0 16px; padding:11px 13px; border-left:4px solid var(--blue);
    border-radius:10px; background:rgba(0,163,224,.06); color:#4d5d67;
}
.planner-source-revision-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.planner-source-revision-version { border:1px solid rgba(145,153,159,.2); border-radius:16px; padding:16px; background:#fff; }
.planner-source-revision-version.is-proposed { border-color:rgba(115,201,45,.32); background:rgba(115,201,45,.035); }
.planner-source-revision-heading { display:flex; align-items:center; margin-bottom:10px; font-size:.76rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:#7a858c; }
.planner-source-revision-version h3 { margin:0 0 10px; font-size:1.02rem; line-height:1.35; }
.planner-source-revision-summary { padding:10px 12px; border-radius:10px; background:rgba(145,153,159,.07); line-height:1.5; }
.planner-source-revision-article { margin-top:12px; line-height:1.62; font-size:.91rem; }
.planner-source-revision-article h3 { margin:18px 0 7px; font-size:1rem; }
.planner-source-revision-lock-note { margin:14px 0 0; padding:10px 12px; border-radius:10px; background:rgba(145,153,159,.1); color:#66717a; font-weight:700; }
.planner-source-revision-actions { flex-wrap:wrap; }
@media (max-width: 760px) {
    .planner-source-revision-grid { grid-template-columns:1fr; }
    .planner-source-revision-content { width:min(100% - 14px, 1180px); max-height:95vh; padding:16px; }
}

/* NewsIA v3.05 — filtres d’affichage par catégories */
.queue-display-filters {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.queue-filter-toggle {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 7px 11px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #00A3E0;
    color: #fff;
    box-sizing: border-box;
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(0, 163, 224, .12);
    transition: filter .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.queue-filter-toggle:hover,
.queue-filter-toggle:focus-visible {
    filter: brightness(.96);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
    outline: none;
}

.queue-filter-toggle:active {
    transform: translateY(1px);
}

.queue-filter-toggle-icon {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
    color: inherit;
}

.queue-filter-toggle-copy {
    white-space: nowrap;
}

.queue-filter-toggle-count {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .2);
    color: inherit;
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
}

/* Tous les sujets reste toujours bleu ceg.gy. */
.queue-filter-all {
    background: #00A3E0;
    color: #fff;
}

/* Désactivés : fond blanc, contour et texte dans la couleur de la catégorie. */
.queue-filter-toggle-publishable {
    background: #fff;
    color: #73C92D;
    border-color: #73C92D;
    box-shadow: 0 5px 14px rgba(115, 201, 45, .10);
}

.queue-filter-toggle-nonpublishable {
    background: #fff;
    color: #AE12DD;
    border-color: #AE12DD;
    box-shadow: 0 5px 14px rgba(174, 18, 221, .10);
}

.queue-filter-toggle-locked {
    background: #fff;
    color: #91999F;
    border-color: #91999F;
    box-shadow: 0 5px 14px rgba(145, 153, 159, .10);
}

.queue-filter-toggle-publishable:not(.is-active) .queue-filter-toggle-icon,
.queue-filter-toggle-publishable:not(.is-active) .queue-filter-toggle-count {
    background: #73C92D;
    color: #fff;
}

.queue-filter-toggle-nonpublishable:not(.is-active) .queue-filter-toggle-icon,
.queue-filter-toggle-nonpublishable:not(.is-active) .queue-filter-toggle-count {
    background: #AE12DD;
    color: #fff;
}

.queue-filter-toggle-locked:not(.is-active) .queue-filter-toggle-icon,
.queue-filter-toggle-locked:not(.is-active) .queue-filter-toggle-count {
    background: #91999F;
    color: #fff;
}

/* Activés : couleur pleine propre à chaque catégorie. */
.queue-filter-toggle-publishable.is-active {
    background: #73C92D;
    color: #fff;
    border-color: #73C92D;
    box-shadow: 0 5px 14px rgba(115, 201, 45, .18);
}

.queue-filter-toggle-nonpublishable.is-active {
    background: #AE12DD;
    color: #fff;
    border-color: #AE12DD;
    box-shadow: 0 5px 14px rgba(174, 18, 221, .18);
}

.queue-filter-toggle-locked.is-active {
    background: #91999F;
    color: #fff;
    border-color: #91999F;
    box-shadow: 0 5px 14px rgba(145, 153, 159, .18);
}

@media (max-width: 767px) {
    .queue-display-filters {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .queue-filter-all {
        grid-column: 1 / -1;
        width: 100%;
    }

    .queue-filter-toggle-publishable,
    .queue-filter-toggle-nonpublishable,
    .queue-filter-toggle-locked {
        width: 100%;
        min-width: 0;
        padding-inline: 8px;
        gap: 5px;
    }

    .queue-filter-toggle-copy {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (max-width: 520px) {
    .queue-display-filters {
        grid-template-columns: 1fr 1fr;
    }

    .queue-filter-toggle-locked {
        grid-column: 1 / -1;
    }
}

@media (max-width: 390px) {
    .queue-filter-toggle {
        min-height: 36px;
        padding-inline: 8px;
        gap: 5px;
        font-size: .78rem;
    }

    .queue-filter-toggle-icon {
        width: 20px;
        height: 20px;
        flex-basis: 20px;
    }

    .queue-filter-toggle-count {
        min-width: 20px;
        height: 20px;
        padding-inline: 5px;
    }
}

/* ==========================================
   FILE D'ATTENTE IA — v3.08
   ========================================== */
.ai-queue-status-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(0,163,224,.1);
    color: var(--blue);
    border: 1px solid rgba(0,163,224,.22);
}
.ai-queue-status-button.has-items {
    background: var(--blue);
    color: #fff;
    border-color: var(--blue);
}
.ai-queue-status-button.has-errors {
    box-shadow: 0 0 0 3px rgba(174,18,221,.12);
}
.manual-sort-buttons button.ai-queue.is-pending {
    background: rgba(0,163,224,.1);
    color: var(--blue);
    border-color: rgba(0,163,224,.32);
    opacity: 1;
}

.ai-queue-modal-content {
    width: min(900px, calc(100% - 28px));
    max-height: 88vh;
    overflow: auto;
}
.ai-queue-modal-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.ai-queue-heading-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.ai-queue-heading-actions .article-summary-action {
    white-space: nowrap;
}
.ai-queue-modal-heading h2 { text-align: left; margin: 4px 0 6px; }
.ai-queue-modal-heading p { margin: 0; color: #667078; max-width: 680px; }
.ai-queue-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 16px;
}
.ai-queue-summary span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 10px;
    border-radius: 999px;
    background: #f2f6f8;
    color: #5f6970;
    font-size: .86rem;
}
.ai-queue-list { display: flex; flex-direction: column; gap: 10px; }
.ai-queue-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 12px;
    border: 1px solid rgba(145,153,159,.2);
    border-radius: 12px;
    background: #fff;
}
.ai-queue-item.status-processing { border-left: 4px solid var(--blue); }
.ai-queue-item.status-retry { border-left: 4px solid #f39c12; }
.ai-queue-item.status-needs_action { border-left: 4px solid #AE12DD; }
.ai-queue-item.status-failed { border-left: 4px solid #d9534f; }
.ai-queue-item-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(0,163,224,.09);
    color: var(--blue);
}
.ai-queue-item-title { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; }
.ai-queue-item-title strong { min-width: 0; overflow-wrap: anywhere; }
.ai-queue-status {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: .74rem;
    background: #eef3f5;
    color: #69747b;
}
.ai-queue-item-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; color: #7b858b; font-size: .78rem; }
.ai-queue-item-error { margin-top: 7px; font-size: .78rem; color: #a44440; overflow-wrap: anywhere; }
.ai-queue-item-actions { display: flex; gap: 6px; }
.ai-queue-item-actions button {
    width: 34px;
    height: 34px;
    padding: 0;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #f1f5f7;
    color: #657078;
}
.ai-queue-item-actions button:hover { background: var(--blue); color: #fff; }
.ai-queue-empty {
    min-height: 170px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #748087;
    text-align: center;
}
.ai-queue-empty > i { font-size: 2rem; color: var(--green); }
.ai-queue-empty.is-error > i { color: #d9534f; }

@media (max-width: 767px) {
    .ai-queue-status-label { display: none; }
    .ai-queue-modal-heading { flex-direction: column; }
    .ai-queue-heading-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
    .ai-queue-heading-actions .article-summary-action { width: 100%; justify-content: center; }
    .ai-queue-item { grid-template-columns: 34px minmax(0, 1fr); }
    .ai-queue-item-icon { width: 34px; height: 34px; }
    .ai-queue-item-actions { grid-column: 1 / -1; justify-content: flex-end; }
    .ai-queue-item-title { flex-direction: column; }
}
.ai-queue-header-count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: rgba(255,255,255,.22);
    font-size: .68rem;
    line-height: 1;
}
/* Ajustement du bouton global File IA dans le bandeau. */
.header-actions .ai-queue-status-button {
    width: auto;
    min-width: 58px;
    padding: 0 10px;
    background: rgba(255,255,255,.14);
    color: #fff;
    border-color: rgba(255,255,255,.32);
}
.header-actions .ai-queue-status-button.has-items {
    background: #00A3E0;
    color: #fff;
    border-color: rgba(255,255,255,.55);
}


/* NewsIA v3.18 — filtres Sujets : Bloqués masqué par défaut + barre mobile compacte au scroll */
.queue-filter-sticky-sentinel {
    display: none;
}

@media (max-width: 767px) {
    .queue-filter-sticky-sentinel {
        display: block;
        width: 100%;
        height: 1px;
        margin: 0;
        padding: 0;
        pointer-events: none;
    }

    #tab-queue.has-mobile-compact-filters {
        padding-bottom: 74px;
    }

    .queue-subject-counters.is-mobile-scroll-compact {
        position: fixed;
        left: max(10px, env(safe-area-inset-left));
        right: max(10px, env(safe-area-inset-right));
        bottom: max(10px, env(safe-area-inset-bottom));
        z-index: 850;
        display: block;
        margin: 0;
        padding: 8px;
        border: 1px solid rgba(145,153,159,.22);
        border-radius: 16px;
        background: rgba(255,255,255,.97);
        box-shadow: 0 12px 32px rgba(35,76,89,.20);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .queue-subject-counters.is-mobile-scroll-compact > h3 {
        display: none;
    }

    .queue-subject-counters.is-mobile-scroll-compact .queue-display-filters {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 7px;
    }

    .queue-subject-counters.is-mobile-scroll-compact .queue-filter-toggle {
        grid-column: auto;
        width: 100%;
        min-width: 0;
        min-height: 42px;
        padding: 6px 7px;
        gap: 5px;
        border-radius: 12px;
    }

    .queue-subject-counters.is-mobile-scroll-compact .queue-filter-toggle-copy {
        display: none;
    }

    .queue-subject-counters.is-mobile-scroll-compact .queue-filter-toggle-icon {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
    }

    .queue-subject-counters.is-mobile-scroll-compact .queue-filter-toggle-count {
        min-width: 22px;
        height: 22px;
        padding: 0 5px;
        font-size: .7rem;
    }
}

/* NewsIA v3.19 — filtres Sujets intégrés au bloc d'ajout manuel pendant le scroll mobile */
@media (max-width: 767px) {
    /* La barre flottante basse de v3.18 n'est plus utilisée. */
    #tab-queue.has-mobile-compact-filters {
        padding-bottom: 0;
    }

    .queue-subject-counters.is-mobile-scroll-compact {
        position: static;
        left: auto;
        right: auto;
        bottom: auto;
        z-index: auto;
        margin: inherit;
        padding: inherit;
        border: inherit;
        border-radius: inherit;
        background: inherit;
        box-shadow: inherit;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-display-filters {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        width: 100%;
        gap: 7px;
        margin: 9px 0 0;
        padding-top: 9px;
        border-top: 1px solid rgba(145,153,159,.18);
    }

    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-filter-toggle {
        grid-column: auto;
        width: 100%;
        min-width: 0;
        min-height: 40px;
        padding: 6px 7px;
        gap: 5px;
        border-radius: 11px;
        justify-content: center;
    }

    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-filter-toggle-copy {
        display: none;
    }

    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-filter-toggle-icon {
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
    }

    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-filter-toggle-count {
        min-width: 22px;
        height: 22px;
        padding: 0 5px;
        font-size: .7rem;
    }
}


/* NewsIA v3.20 - articles liés dans la préparation éditoriale */
.planner-related-articles-panel {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(0,163,224,.16);
    background: linear-gradient(145deg, rgba(238,249,252,.95), rgba(255,255,255,.96));
    box-shadow: 0 10px 24px rgba(0,0,0,.05);
}
.planner-related-articles-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.planner-related-articles-head h4 {
    margin: 0;
    font-size: .98rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #17465a;
}
.planner-related-articles-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(115,201,45,.14);
    color: #4f7d22;
    font-weight: 700;
    font-size: .82rem;
}
.planner-related-articles-body {
    min-height: 44px;
}
.planner-related-articles-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 9px;
}
.planner-related-articles-list li {
    padding: 9px 11px;
    border-radius: 12px;
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(145,153,159,.14);
}
.planner-related-articles-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.planner-related-articles-copy a,
.planner-related-articles-label {
    color: #23485a;
    font-weight: 700;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.planner-related-articles-copy a:hover {
    text-decoration: underline;
}
.planner-related-articles-meta {
    color: var(--grey);
    font-size: .78rem;
    overflow-wrap: anywhere;
}
.planner-related-articles-empty {
    color: var(--grey);
    font-size: .82rem;
}
@media (max-width: 767px) {
    .planner-related-articles-panel { padding: 12px; }
    .planner-related-articles-head h4 { font-size: .93rem; }
}


/* NewsIA v3.21 - miniatures et ouverture groupée des articles liés */
.planner-related-articles-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.planner-related-open-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid rgba(0,163,224,.2);
    border-radius: 10px;
    background: rgba(0,163,224,.07);
    color: #16779a;
    font: inherit;
    font-size: .76rem;
    font-weight: 700;
    cursor: pointer;
}
.planner-related-open-all:hover:not(:disabled) {
    background: rgba(0,163,224,.13);
    border-color: rgba(0,163,224,.34);
}
.planner-related-open-all:disabled {
    opacity: .45;
    cursor: default;
}
.planner-related-articles-list li {
    display: flex;
    align-items: center;
    gap: 11px;
}
.planner-related-articles-thumb {
    flex: 0 0 76px;
    width: 76px;
    height: 54px;
    overflow: hidden;
    border-radius: 9px;
    background: rgba(145,153,159,.09);
    border: 1px solid rgba(145,153,159,.12);
}
.planner-related-articles-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.planner-related-articles-copy {
    flex: 1 1 auto;
}
@media (max-width: 767px) {
    .planner-related-articles-head { align-items: flex-start; }
    .planner-related-articles-actions { gap: 6px; }
    .planner-related-open-all { font-size: 0; width: 32px; padding: 5px; }
    .planner-related-open-all i { font-size: .8rem; }
    .planner-related-articles-thumb { flex-basis: 64px; width: 64px; height: 48px; }
}

/* NewsIA v3.22 - titres réels et badge Nouvelle source */
.planner-related-articles-title {
    display: inline-block;
    color: #173f51;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1.32;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.planner-related-articles-title:hover { text-decoration: underline; }
.planner-related-articles-meta-row {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.planner-related-article-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    white-space: nowrap;
}
.planner-related-article-badge.is-new {
    color: #16779a;
    background: rgba(0,163,224,.1);
    border: 1px solid rgba(0,163,224,.2);
}
@media (max-width: 767px) {
    .planner-related-articles-title { font-size: .85rem; }
}


/* NewsIA v3.23 — mobile : bookmarklet masqué + compteur Brouillon dans le sticky */
.queue-filter-draft-shortcut {
    display: none;
    background: #fff;
    color: #00A3E0;
    border-color: #00A3E0;
    box-shadow: 0 5px 14px rgba(0,163,224,.10);
}
.queue-filter-draft-shortcut .queue-filter-toggle-icon,
.queue-filter-draft-shortcut .queue-filter-toggle-count {
    background: #00A3E0;
    color: #fff;
}

@media (max-width: 767px) {
    .bookmarklet-helper {
        display: none !important;
    }

    /* Brouillon n'est pas un filtre de sujets : il apparaît uniquement dans le
       bloc compact fixé pendant le scroll et ouvre le Planificateur au clic. */
    .manual-article-adder.is-viewport-fixed.has-queue-compact-filters .queue-filter-draft-shortcut {
        display: inline-flex;
    }
}


/* NewsIA v3.24 - articles liés hors avis du rédacteur + accordéon */
.planner-related-articles-accordion {
    margin-top: 14px;
    padding: 0;
    overflow: hidden;
}
.planner-related-articles-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.planner-related-articles-summary::-webkit-details-marker { display: none; }
.planner-related-articles-summary-title,
.planner-related-articles-summary-side {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}
.planner-related-articles-summary-title {
    color: #17465a;
    font-weight: 800;
    font-size: .98rem;
}
.planner-related-articles-chevron {
    color: var(--grey);
    transition: transform .2s ease;
}
.planner-related-articles-accordion[open] .planner-related-articles-chevron { transform: rotate(180deg); }
.planner-related-articles-accordion-body {
    padding: 0 16px 16px;
    border-top: 1px solid rgba(145,153,159,.12);
}
.planner-related-articles-accordion .planner-related-articles-actions {
    justify-content: flex-end;
    padding-top: 12px;
    margin-bottom: 10px;
}
@media (max-width: 767px) {
    .planner-related-articles-summary { padding: 12px; }
    .planner-related-articles-accordion-body { padding: 0 12px 12px; }
    .planner-related-articles-summary-title { font-size: .92rem; }
}


/* NewsIA v3.25 — reprise de la pagination RSS en cas d'échec du lot suivant */
.newsia-scroll-sentinel.is-retry { flex-wrap: wrap; gap: 8px 12px; }
.newsia-scroll-sentinel.is-retry span { color: #596870; font-weight: 600; }
.newsia-scroll-sentinel.is-retry button { white-space: nowrap; }


/* NewsIA v3.26 : stabilité du passage au sticky et lien vers les publications */
@media (max-width: 767px) {
    .queue-filter-original-space {
        display: block;
        box-sizing: border-box;
        max-width: 100%;
        visibility: hidden;
        pointer-events: none;
        flex-shrink: 0;
    }
}
.planner-ceg-send-result {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(115,201,45,.28);
    border-radius: 12px;
    background: rgba(115,201,45,.07);
}
.planner-ceg-send-success {
    color: #496d2c;
    font-weight: 700;
    font-size: .83rem;
}
.planner-ceg-publications-link {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border: 1px solid rgba(0,163,224,.28);
    border-radius: 10px;
    background: #fff;
    color: #087da7;
    text-decoration: none;
    font-size: .82rem;
    font-weight: 800;
}
.planner-ceg-publications-link:hover { background: #eef9fc; }
.header-actions .newsia-pwa-install {
    background: rgba(255,255,255,.16);
    color: #fff;
    border-color: rgba(255,255,255,.36);
}
.header-actions .newsia-pwa-install[hidden] { display: none !important; }


/* NewsIA v3.27 — fermeture du partage PWA */
.bookmarklet-close-hint[hidden] { display: none !important; }
.bookmarklet-card > .bookmarklet-close-hint {
    margin-top: 12px;
    font-size: .8rem;
    line-height: 1.45;
    color: #66717b;
}


/* v3.28 — diagnostic des réponses IA et articles concernés */
.newsia-ai-json-diagnostics { margin: 13px 0 18px; border: 1px solid rgba(182,114,30,.32); border-radius: 14px; background: #fffaf1; padding: 13px 15px; }
.newsia-ai-json-diagnostics[hidden] { display: none !important; }
.newsia-ai-json-diagnostics > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; cursor: pointer; color: #8a5111; font-weight: 700; }
.newsia-ai-json-diagnostics > summary span { color: #fff; background: #b26717; padding: 2px 8px; border-radius: 999px; font-size: .79rem; }
.newsia-ai-json-diagnostics > summary small { font-weight: 400; color: #765e42; }
.newsia-ai-json-diagnostics-intro { margin: 11px 0; color: #665947; font-size: .82rem; }
.newsia-ai-json-diagnostics-list { display: grid; gap: 9px; }
.newsia-ai-json-incident { background: #fff; border: 1px solid rgba(182,114,30,.19); border-radius: 11px; padding: 10px 12px; }
.newsia-ai-json-incident > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; flex-wrap: wrap; }
.newsia-ai-json-incident > summary span { display: inline-flex; align-items: center; gap: 7px; color: #835011; }
.newsia-ai-json-incident > summary small { color: #6f7880; }
.newsia-ai-json-incident-body { margin-top: 12px; font-size: .85rem; color: #344651; }
.newsia-ai-json-attribution { font-weight: 600; }
.newsia-ai-json-source-list { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 7px; }
.newsia-ai-json-source-list li { display: flex; align-items: flex-start; gap: 9px; padding: 9px; border: 1px solid #e0e7eb; border-radius: 9px; background: #fbfcfd; min-width: 0; }
.newsia-ai-json-source-list li > i { flex: 0 0 auto; color: #00a3e0; margin-top: 3px; }
.newsia-ai-json-source-list li span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.newsia-ai-json-source-list a { color: #24627a; font-weight: 700; overflow-wrap: anywhere; }
.newsia-ai-json-source-list small { color: #697882; font-size: .75rem; }
.newsia-ai-json-no-source { color: #727e87; }
.view-container .newsia-ai-json-source-highlight { outline: 2px solid #b77620; outline-offset: -2px; border-radius: 10px; }
.newsia-ai-json-marker { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 7px; padding: 4px 8px; border-radius: 7px; background: #fff0d8; color: #81510d; font-size: .78rem; font-weight: 700; }
.newsia-ai-json-log { line-height: 1.45; }
@media(max-width: 767px) { .newsia-ai-json-diagnostics { padding: 11px; } .newsia-ai-json-incident { padding: 9px; } }

/* NewsIA v3.29 — retour arrière du dernier geste */
.newsia-undo-bar {
  position:fixed;
  z-index:950;
  bottom:18px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 13px;
  max-width:min(620px,calc(100vw - 28px));
  width:max-content;
  border:1px solid rgba(0,163,224,.22);
  background:rgba(255,255,255,.98);
  box-shadow:0 12px 34px rgba(25,55,65,.19);
  border-radius:15px;
  color:#324750;
  font:700 .85rem/1.35 'Trebuchet MS',sans-serif;
}
.newsia-undo-bar[hidden] { display:none !important; }
.newsia-undo-icon { color:var(--blue); font-size:1.1rem; }
.newsia-undo-label { flex:1; min-width:0; overflow-wrap:anywhere; }
.newsia-undo-trigger { display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0; padding:8px 12px; border:0; border-radius:10px; background:var(--blue); color:white; font:700 .85rem 'Trebuchet MS',sans-serif;cursor:pointer; }
.newsia-undo-trigger:disabled { opacity:.6; cursor:wait; }
.newsia-undo-dismiss { display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:#7c8589;cursor:pointer;padding:7px; }
.newsia-synthesis-grace { position:fixed;z-index:12300;left:50%;bottom:20px;transform:translateX(-50%);max-width:min(660px,calc(100vw - 28px));width:max-content;display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:15px;border:1px solid rgba(0,163,224,.24);color:#234353;background:white;box-shadow:0 16px 40px rgba(20,45,55,.24);font:700 .86rem/1.4 'Trebuchet MS',sans-serif; }
.newsia-synthesis-grace-label { min-width:0; overflow-wrap:anywhere; }
.newsia-synthesis-grace > i { color:var(--blue); }
.newsia-synthesis-grace > button { white-space:nowrap;border:1px solid rgba(184,61,61,.2);color:#a13b3b;background:#fff6f6;padding:8px 11px;border-radius:10px;cursor:pointer;font:700 .82rem 'Trebuchet MS',sans-serif; }
.log-type.log-edit { color:#007dab; }
.newsia-logs-preservation { display:inline-flex;align-items:center;gap:7px;color:#607079;font-size:.8rem; }
@media (max-width:700px) {
  .newsia-undo-bar { bottom:12px;left:12px;right:12px;transform:none;width:auto;max-width:none;padding:10px;gap:9px; }
  .newsia-synthesis-grace { left:12px;right:12px;transform:none;max-width:none;width:auto;bottom:12px;flex-wrap:wrap; }
  .newsia-synthesis-grace-label { flex:1; }
  .newsia-undo-label { font-size:.78rem; }
}
