/* ============================================================
   PTM Communication — Styles (look & feel PTM FPDD)
   Couleur principale : #A0CE4E (vert FPDD)
   ============================================================ */

.ptm-comreq-app {
    background-color: #f8f9fa;
    padding: 30px;
    border-radius: 8px;
    max-width: 1000px;
    margin: 0 auto;
    font-size: 14px;
    font-family: inherit;
    color: #212529;
}

.ptm-comreq-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #dee2e6;
}
.ptm-comreq-title { font-size: 20px; font-weight: 600; color: #333; margin: 0; }
.ptm-comreq-user-chip { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #495057; }
.ptm-comreq-avatar {
    width: 30px; height: 30px; border-radius: 50%;
    background-color: #A0CE4E; color: #fff;
    font-size: 12px; font-weight: 600;
    display: inline-flex; align-items: center; justify-content: center;
}

.ptm-comreq-tabs {
    display: flex !important;
    border-bottom: 2px solid #dee2e6 !important;
    margin-bottom: 20px !important;
    gap: 0 !important;
    list-style: none !important;
    padding: 0 !important;
}
.ptm-comreq-tab {
    display: inline-block !important;
    padding: 10px 20px !important;
    background: none !important;
    border: none !important;
    border-bottom: 3px solid transparent !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    margin-bottom: -2px !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #646970 !important;
    font-family: inherit !important;
    text-decoration: none !important;
    transition: color 0.2s, border-color 0.2s !important;
    outline: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.ptm-comreq-tab:hover {
    color: #A0CE4E !important;
    background: rgba(160,206,78,0.06) !important;
    text-decoration: none !important;
}
.ptm-comreq-tab--active {
    border-bottom: 3px solid #A0CE4E !important;
    color: #A0CE4E !important;
    background: none !important;
}
.ptm-comreq-count {
    display: inline-block !important;
    background: #e9ecef !important;
    color: #495057 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
    padding: 1px 7px !important;
    margin-left: 6px !important;
}

.ptm-comreq-view--hidden {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}

.ptm-comreq-card {
    background: #ffffff; border: 1px solid #dee2e6;
    border-radius: 8px; padding: 20px 25px; margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.ptm-comreq-section-label {
    font-size: 13px; font-weight: 600; color: #495057;
    text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px;
}

.ptm-comreq-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.ptm-comreq-cat {
    padding: 6px 14px; font-size: 13px; font-weight: 600;
    border-radius: 20px; border: 2px solid #dee2e6;
    background: #ffffff; color: #495057;
    cursor: pointer; font-family: inherit; transition: all 0.2s;
}
.ptm-comreq-cat:hover { border-color: #A0CE4E; color: #3d5c0f; background: rgba(160,206,78,0.1); }

/* Couleur neutre non-sélectionné au survol par catégorie */
.ptm-comreq-cat[data-cat="information"]:hover      { border-color: #2271b1; color: #2271b1; background: #e8f0fb; }
.ptm-comreq-cat[data-cat="evenement_externe"]:hover { border-color: #6f42c1; color: #6f42c1; background: #f0ebfc; }
.ptm-comreq-cat[data-cat="formation"]:hover        { border-color: #A0CE4E; color: #3d5c0f; background: rgba(160,206,78,0.1); }
.ptm-comreq-cat[data-cat="conseil_lecture"]:hover  { border-color: #fd7e14; color: #7d3e00; background: #fff3e0; }
.ptm-comreq-cat[data-cat="a_revoir"]:hover         { border-color: #e83e8c; color: #8b1a4a; background: #fce8f3; }
.ptm-comreq-cat[data-cat="autre"]:hover            { border-color: #6c757d; color: #343a40; background: #e9ecef; }

/* Sélectionné : couleur propre à chaque catégorie */
.ptm-comreq-cat--information { background-color: #2271b1 !important; border-color: #1a5a8f !important; color: #fff !important; }
.ptm-comreq-cat--evenement_externe { background-color: #6f42c1 !important; border-color: #5a32a3 !important; color: #fff !important; }
.ptm-comreq-cat--formation { background-color: #A0CE4E !important; border-color: #8bb83d !important; color: #fff !important; }
.ptm-comreq-cat--conseil_lecture { background-color: #fd7e14 !important; border-color: #e06c00 !important; color: #fff !important; }
.ptm-comreq-cat--a_revoir { background-color: #e83e8c !important; border-color: #c4306f !important; color: #fff !important; }
.ptm-comreq-cat--autre { background-color: #6c757d !important; border-color: #545b62 !important; color: #fff !important; }

.ptm-comreq-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; }
.ptm-comreq-field label { font-size: 13px; font-weight: 600; color: #495057; }
.ptm-comreq-optional { font-size: 11px; font-weight: 400; color: #6c757d; margin-left: 4px; }
.ptm-comreq-hint { font-size: 11px; color: #6c757d; margin-top: 3px; }
.ptm-comreq-field input[type="text"],
.ptm-comreq-field input[type="date"],
.ptm-comreq-field textarea {
    padding: 6px 8px; border: 1px solid #ced4da; border-radius: 6px;
    font-size: 14px; font-family: inherit;
    background-color: #ffffff; color: #212529;
    transition: border-color 0.2s ease;
}
.ptm-comreq-field textarea {
    resize: vertical; min-height: 100px; line-height: 1.6;
    width: 100%; box-sizing: border-box;
}
.ptm-comreq-field input[type="text"]:focus,
.ptm-comreq-field input[type="date"]:focus,
.ptm-comreq-field textarea:focus {
    border-color: #A0CE4E; outline: none;
    box-shadow: 0 0 0 3px rgba(160,206,78,0.15);
}
.ptm-comreq-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.ptm-comreq-medias { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 0; }

/* Médias + date sur la même ligne */
.ptm-comreq-medias-date-row {
    display: flex !important;
    align-items: flex-end !important;
    gap: 30px !important;
    flex-wrap: wrap !important;
    margin-bottom: 16px !important;
}
.ptm-comreq-field--date {
    margin-bottom: 0 !important;
    flex-shrink: 0 !important;
}
.ptm-comreq-field--date input[type="date"] {
    width: 180px !important;
}
.ptm-comreq-mcheck {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 14px; border: 2px solid #dee2e6; border-radius: 6px;
    cursor: pointer; font-size: 13px; font-weight: 600;
    color: #495057; background: #ffffff;
    user-select: none; transition: all 0.2s;
}
.ptm-comreq-mcheck input[type="checkbox"] {
    width: 16px; height: 16px; cursor: pointer; accent-color: #A0CE4E;
}
.ptm-comreq-mcheck--on { border-color: #A0CE4E; background-color: rgba(160,206,78,0.12); color: #3d5c0f; }
.ptm-comreq-mcheck:hover { border-color: #A0CE4E; }

/* Couleurs distinctes par média */
.ptm-comreq-mcheck[data-media="lettre_info"]     { border-left: 4px solid #2271b1; }
.ptm-comreq-mcheck[data-media="reseaux_soc"]     { border-left: 4px solid #e83e8c; }
.ptm-comreq-mcheck[data-media="site_web"]        { border-left: 4px solid #A0CE4E; }
.ptm-comreq-mcheck[data-media="lettre_info"].ptm-comreq-mcheck--on  { background-color: #e8f0fb; border-color: #2271b1; color: #1a5a8f; }
.ptm-comreq-mcheck[data-media="reseaux_soc"].ptm-comreq-mcheck--on  { background-color: #fce8f3; border-color: #e83e8c; color: #8b1a4a; }
.ptm-comreq-mcheck[data-media="site_web"].ptm-comreq-mcheck--on     { background-color: rgba(160,206,78,0.12); border-color: #A0CE4E; color: #3d5c0f; }

.ptm-comreq-notif-box {
    display: flex; align-items: flex-start; gap: 10px;
    background-color: #e8f4fd; border: 1px solid #b8d9f0;
    border-left: 4px solid #2271b1; border-radius: 6px;
    padding: 10px 14px; margin-top: 12px;
    font-size: 13px; color: #1a4a7a; line-height: 1.5;
}
.ptm-comreq-notif-box svg { flex-shrink: 0; margin-top: 1px; }

.ptm-comreq-actions {
    display: flex; justify-content: flex-end; gap: 10px;
    margin-top: 20px; padding-top: 16px; border-top: 1px solid #dee2e6;
}
.ptm-comreq-btn-ghost {
    padding: 8px 16px; font-size: 14px; font-weight: 600;
    border: 2px solid #dee2e6; border-radius: 6px;
    background: #ffffff; color: #495057;
    cursor: pointer; font-family: inherit; transition: all 0.2s;
}
.ptm-comreq-btn-ghost:hover { background: #f0f0f0; border-color: #adb5bd; }
.ptm-comreq-btn-primary {
    padding: 8px 20px; font-size: 14px; font-weight: 600;
    border: none; border-radius: 6px;
    background-color: #A0CE4E; color: #ffffff;
    cursor: pointer; font-family: inherit; transition: all 0.2s;
}
.ptm-comreq-btn-primary:hover {
    background-color: #8bb83d; transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(160,206,78,0.3);
}

.ptm-comreq-feedback {
    position: fixed; bottom: 20px; right: 20px;
    padding: 12px 20px; border-radius: 6px;
    font-size: 14px; font-weight: 500;
    z-index: 9999; max-width: 340px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.ptm-comreq-feedback--success { background: #d4edda; color: #155724; border-left: 4px solid #28a745; }
.ptm-comreq-feedback--error   { background: #f8d7da; color: #721c24; border-left: 4px solid #dc3545; }

.ptm-comreq-list-top {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 10px; margin-bottom: 16px;
}
.ptm-comreq-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.ptm-comreq-fpill {
    padding: 5px 14px; font-size: 13px; font-weight: 600;
    border-radius: 20px; border: 2px solid #dee2e6;
    background: #ffffff; color: #495057;
    cursor: pointer; font-family: inherit; transition: all 0.2s;
}
.ptm-comreq-fpill:hover { border-color: #A0CE4E; color: #A0CE4E; }
.ptm-comreq-fpill--on { background-color: #A0CE4E; border-color: #8bb83d; color: #ffffff; }
.ptm-comreq-total { font-size: 13px; color: #6c757d; white-space: nowrap; }

.ptm-comreq-loading,
.ptm-comreq-empty { color: #6c757d; font-size: 14px; padding: 12px 0; font-style: italic; }

.ptm-comreq-icard {
    background: #ffffff; border: 1px solid #dee2e6;
    border-radius: 8px; padding: 14px 18px; margin-bottom: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: box-shadow 0.2s, transform 0.2s;
}
.ptm-comreq-icard:hover {
    background-color: #f8f9fa;
    transform: translateX(2px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.ptm-comreq-icard-top { margin-bottom: 8px; }
.ptm-comreq-ititle { font-size: 15px; font-weight: 600; color: #212529; }
.ptm-comreq-imeta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; align-items: center; }
.ptm-comreq-itext { font-size: 13px; color: #555; line-height: 1.6; margin-bottom: 8px; }
.ptm-comreq-ilinks { display: flex; gap: 16px; margin-bottom: 8px; }
.ptm-comreq-ilink { font-size: 13px; color: #2271b1; text-decoration: none; }
.ptm-comreq-ilink:hover { text-decoration: underline; }
.ptm-comreq-ifoot {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 6px;
    border-top: 1px solid #f0f0f0;
    padding-top: 8px; margin-top: 6px;
}
.ptm-comreq-ifoot-left { font-size: 12px; color: #6c757d; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ptm-comreq-sep { color: #ced4da; }
.ptm-comreq-archive-note { color: #856404; }
.ptm-comreq-ifoot-right { display: flex; gap: 6px; }

.ptm-comreq-abtn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 4px 12px; font-size: 12px; font-weight: 600;
    border-radius: 4px; border: 2px solid #dee2e6;
    background: #ffffff; color: #495057;
    cursor: pointer; font-family: inherit; transition: all 0.2s;
}
.ptm-comreq-abtn:hover:not(:disabled) { background: #f0f0f0; border-color: #adb5bd; }
.ptm-comreq-abtn:disabled { opacity: 0.4; cursor: not-allowed; }
.ptm-comreq-abtn--edit { border-color: #A0CE4E; color: #3d5c0f; }
.ptm-comreq-abtn--edit:hover:not(:disabled) {
    background-color: #A0CE4E; color: #ffffff; border-color: #8bb83d;
    transform: translateY(-1px); box-shadow: 0 2px 8px rgba(160,206,78,0.3);
}
.ptm-comreq-abtn--del { border-color: #f5c6cb; color: #721c24; }
.ptm-comreq-abtn--del:hover:not(:disabled) {
    background-color: #dc3545; color: #ffffff; border-color: #dc3545;
    transform: translateY(-1px); box-shadow: 0 2px 8px rgba(220,53,69,0.3);
}

.ptm-comreq-badge {
    display: inline-block; padding: 2px 10px;
    border-radius: 12px; font-size: 12px; font-weight: 600;
    letter-spacing: 0.3px; white-space: nowrap;
}
.ptm-comreq-badge--cat-information,
.ptm-comreq-badge--cat-evenement-externe,
.ptm-comreq-badge--cat-formation,
.ptm-comreq-badge--cat-conseil-lecture,
.ptm-comreq-badge--cat-a-revoir,
.ptm-comreq-badge--cat-autre {
    background-color: rgba(160,206,78,0.15);
    color: #3d5c0f;
    border: 1px solid rgba(160,206,78,0.4);
}
.ptm-comreq-badge--media { background-color: #e9ecef; color: #495057; border: 1px solid #dee2e6; }
.ptm-comreq-badge--stat-en-attente  { background: #fff3cd; color: #856404; border: 1px solid #ffc107; }
.ptm-comreq-badge--stat-programme   { background: #cce5ff; color: #004085; border: 1px solid #b8daff; }
.ptm-comreq-badge--stat-publie      { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.ptm-comreq-badge--stat-refuse      { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.ptm-comreq-badge--stat-reporte     { background: #e2e3e5; color: #383d41; border: 1px solid #d6d8db; }
.ptm-comreq-badge--mine { background: rgba(160,206,78,0.2); color: #3d5c0f; border: 1px solid #A0CE4E; }

@media (max-width: 768px) {
    .ptm-comreq-app { padding: 15px; }
    .ptm-comreq-row2 { grid-template-columns: 1fr; }
    .ptm-comreq-topbar { flex-direction: column; align-items: flex-start; gap: 8px; }
    .ptm-comreq-actions { flex-direction: column; }
    .ptm-comreq-btn-primary, .ptm-comreq-btn-ghost { width: 100%; text-align: center; }
    .ptm-comreq-ifoot { flex-direction: column; align-items: flex-start; }
}

/* Feedback repositionné dans le formulaire (non flottant) */
.ptm-comreq-card .ptm-comreq-feedback {
    position: static;
    bottom: auto; right: auto;
    max-width: 100%;
    border-radius: 6px;
    box-shadow: none;
}

/* ---- Tableau médias (formulaire) ---- */
.ptm-comreq-media-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 4px;
}
.ptm-comreq-media-table th {
    font-size: 11px;
    font-weight: 600;
    color: #495057;
    text-align: left;
    padding: 0 10px 8px 0;
    border-bottom: 0.5px solid #dee2e6;
}
.ptm-comreq-media-table td {
    padding: 8px 10px 8px 0;
    border-bottom: 0.5px solid #f0f0f0;
    vertical-align: middle;
    font-size: 13px;
}
.ptm-comreq-media-table tr:last-child td { border-bottom: none; }
.ptm-comreq-media-check-label {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-weight: 500;
    color: #495057;
    user-select: none;
}
.ptm-comreq-media-check-label input[type=checkbox] {
    width: 15px;
    height: 15px;
    cursor: pointer;
    accent-color: #A0CE4E;
}
.ptm-comreq-media-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.ptm-comreq-media-table input[type=date] {
    font-family: inherit;
    font-size: 13px;
    padding: 5px 8px;
    border: 0.5px solid #ced4da;
    border-radius: 6px;
    background: #fff;
    color: #212529;
    width: 160px;
}
.ptm-comreq-media-table input[type=date]:disabled {
    opacity: .4;
    cursor: not-allowed;
    background: #f5f5f5;
}
.ptm-comreq-media-table input[type=date]:focus {
    outline: none;
    border-color: #A0CE4E;
    box-shadow: 0 0 0 2px rgba(160,206,78,.12);
}

/* ---- Bloc médias dans les cartes (liste) ---- */
.ptm-comreq-media-block {
    background: var(--color-background-secondary, #f8f9fa);
    border-top: 0.5px solid var(--color-border-tertiary, rgba(0,0,0,.1));
}
.ptm-comreq-ms-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.ptm-comreq-ms-table td {
    padding: 7px 1.25rem;
    border-top: 0.5px solid var(--color-border-tertiary, rgba(0,0,0,.07));
}
.ptm-comreq-ms-table tr:first-child td { border-top: none; }
.ptm-comreq-ms-name {
    display: flex;
    align-items: center;
    gap: 7px;
    font-weight: 500;
    color: #495057;
    min-width: 130px;
}
.ptm-comreq-ms-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.ptm-comreq-ms-status {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ptm-comreq-ms-date { color: #6c757d; }
.ptm-comreq-ms-date--prog { color: #3B6D11; font-weight: 500; }

/* Badges statut inline */
.ptm-comreq-sbadge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}
.ptm-comreq-sbadge--en-attente  { background: #fff3cd; color: #856404; border: 0.5px solid #ffc107; }
.ptm-comreq-sbadge--programme   { background: #cce5ff; color: #004085; border: 0.5px solid #b8daff; }
.ptm-comreq-sbadge--publie      { background: #d4edda; color: #155724; border: 0.5px solid #c3e6cb; }
.ptm-comreq-sbadge--refuse      { background: #f8d7da; color: #721c24; border: 0.5px solid #f5c6cb; }
.ptm-comreq-sbadge--reporte     { background: #e2e3e5; color: #383d41; border: 0.5px solid #d6d8db; }

/* Ajustement header carte */
.ptm-comreq-icard-header { padding: 1rem 1.25rem 0.75rem; }
.ptm-comreq-icard-catbadge { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; margin-bottom: 6px; }