/* ── MDE Public Styles — alignés sur maquettes SI MDE v3 ─── */
/* Override : utilise les vars du thème (--g, --t1, etc.) si dispo */

/* Forcer la palette nouvelle si présente */
.mde-form-wrap,
.mde-shortcode-wrap {
    --mde-primary:       var(--g, #007533);
    --mde-primary-hover: var(--g-dk, #005a26);
    --mde-primary-light: var(--g-lt, #E6F5EE);
    --mde-dark:          var(--t1, #1A1A1A);
    --mde-gray:          var(--t2, #555555);
    --mde-gray-light:    var(--t3, #767676);
    --mde-border:        var(--bd, #DADDD8);
    --mde-bg:            var(--bg, #F7F8F6);
    --mde-radius:        6px;
    --mde-radius-lg:     10px;
}

/* Champs de saisie : harmoniser avec maquettes (input plus haut, focus vert) */
.mde-field input[type="text"],
.mde-field input[type="email"],
.mde-field input[type="tel"],
.mde-field input[type="password"],
.mde-field input[type="number"],
.mde-field input[type="date"],
.mde-field select,
.mde-field textarea {
    min-height: 42px !important;
    border: 1.5px solid #B0B0B0 !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-family: 'Segoe UI', Arial, sans-serif;
}
.mde-field input:focus,
.mde-field select:focus,
.mde-field textarea:focus {
    border-color: var(--g, #007533) !important;
    box-shadow: 0 0 0 3px rgba(0,117,51,.1) !important;
    outline: none !important;
}

/* Boutons primaires */
.mde-btn,
.mde-btn-primary {
    background: var(--g, #007533) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    transition: background .15s !important;
}
.mde-btn:hover,
.mde-btn-primary:hover {
    background: var(--g-dk, #005a26) !important;
    text-decoration: none !important;
}

/* Form wrapper */
.mde-form-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 0 16px;
}

.mde-form-wrap h2 {
    font-size: 1.6em;
    margin-bottom: 8px;
    color: var(--mde-dark, #1a1a2e);
}

.mde-form-intro {
    color: var(--mde-gray, #555);
    margin-bottom: 24px;
}

/* Form layout */
.mde-form fieldset {
    border: 1px solid #ddd;
    border-radius: var(--mde-radius, 6px);
    padding: 20px;
    margin-bottom: 24px;
}

.mde-form legend {
    font-weight: 600;
    font-size: 1.1em;
    color: var(--mde-dark, #1a1a2e);
    padding: 0 8px;
}

.mde-form-row {
    margin-bottom: 16px;
}

.mde-form-row--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

@media (max-width: 600px) {
    .mde-form-row--2col {
        grid-template-columns: 1fr;
    }
}

/* Fields */
.mde-field {
    margin-bottom: 12px;
}

.mde-field label {
    display: block;
    font-weight: 500;
    margin-bottom: 4px;
    font-size: 14px;
    color: #333;
}

.mde-field label small {
    font-weight: 400;
    color: var(--mde-gray-light, #888);
}

.mde-field input[type="text"],
.mde-field input[type="email"],
.mde-field input[type="tel"],
.mde-field input[type="password"],
.mde-field input[type="number"],
.mde-field input[type="date"],
.mde-field select,
.mde-field textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    line-height: 1.4;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.mde-field input:focus,
.mde-field select:focus,
.mde-field textarea:focus {
    border-color: var(--mde-primary, #328633);
    outline: none;
    box-shadow: 0 0 0 1px var(--mde-primary, #328633);
}

.mde-field-help {
    font-size: 12px;
    color: var(--mde-gray-light, #888);
    margin-top: 4px;
}

/* Buttons */
.mde-form-actions {
    margin-top: 24px;
    text-align: center;
}

.mde-btn {
    display: inline-block;
    padding: 12px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: var(--mde-radius, 6px);
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s;
}

.mde-btn-primary {
    background: var(--mde-primary, #328633);
    color: #fff;
}

.mde-btn-primary:hover {
    background: var(--mde-primary-hover, #276a28);
    color: #fff;
}

/* Notices */
.mde-notice {
    padding: 14px 18px;
    border-radius: var(--mde-radius, 6px);
    margin-bottom: 20px;
    font-size: 14px;
}

.mde-notice-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.mde-notice-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.mde-notice-info {
    background: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}

.mde-notice ul {
    margin: 0;
    padding-left: 20px;
}

.mde-notice li {
    margin-bottom: 4px;
}

/* ── Espace Info : Onglets ────────────────────────────────── */

.mde-espace-info {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 16px;
}

.mde-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--mde-primary, #328633);
    margin-bottom: 24px;
}

.mde-tab {
    padding: 12px 24px;
    text-decoration: none;
    color: var(--mde-gray, #555);
    font-weight: 500;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
    transition: background 0.2s;
}

.mde-tab:hover {
    background: var(--mde-primary-light, #e8f5e9);
    color: #333;
    text-decoration: none;
}

.mde-tab-active {
    background: var(--mde-primary, #328633);
    color: #fff;
}

.mde-tab-active:hover {
    background: var(--mde-primary-hover, #276a28);
    color: #fff;
}

/* ── Recherche ────────────────────────────────────────────── */

.mde-search-section {
    max-width: 960px;
    margin: 0 auto;
}

.mde-search-section h2 {
    font-size: 1.5em;
    color: var(--mde-dark, #1a1a2e);
    margin-bottom: 16px;
}

.mde-search-form {
    margin-bottom: 24px;
}

.mde-search-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.mde-search-input {
    flex: 1;
    min-width: 200px;
    padding: 10px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    box-sizing: border-box;
}

.mde-search-input:focus {
    border-color: var(--mde-primary, #328633);
    outline: none;
    box-shadow: 0 0 0 1px var(--mde-primary, #328633);
}

.mde-select {
    padding: 10px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    background: #fff;
    min-width: 180px;
}

/* ── Grille de resultats ──────────────────────────────────── */

.mde-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.mde-card-public {
    background: #fff;
    border: 1px solid var(--mde-border, #e0e0e0);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 20px;
    transition: box-shadow 0.2s;
}

.mde-card-public:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mde-card-public h3 {
    font-size: 1.1em;
    margin: 0 0 8px;
}

.mde-card-public h3 a,
.mde-card-public h4 a {
    text-decoration: none;
    color: var(--mde-primary, #328633);
}

.mde-card-public h3 a:hover,
.mde-card-public h4 a:hover {
    text-decoration: underline;
}

.mde-card-public h4 {
    font-size: 1em;
    margin: 0 0 6px;
}

.mde-card-public p {
    color: var(--mde-gray, #555);
    font-size: 14px;
    margin: 6px 0;
}

.mde-link {
    display: inline-block;
    margin-top: 8px;
    color: var(--mde-primary, #328633);
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
}

.mde-link:hover {
    text-decoration: underline;
}

.mde-no-results {
    color: var(--mde-gray-light, #888);
    font-style: italic;
    grid-column: 1 / -1;
}

/* ── Badges (public) ──────────────────────────────────────── */

.mde-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    background: #e8edf3;
    color: #333;
    margin-right: 4px;
}

.mde-badge-info {
    background: #d1ecf1;
    color: #0c5460;
}

.mde-badge-success {
    background: #d4edda;
    color: #155724;
}

.mde-badge-warning {
    background: #fff3cd;
    color: #856404;
}

.mde-badge-danger {
    background: #f8d7da;
    color: #721c24;
}

/* ── Fiche detaillee ──────────────────────────────────────── */

.mde-fiche {
    max-width: 800px;
    margin: 0 auto;
}

.mde-back-link {
    display: inline-block;
    color: var(--mde-primary, #328633);
    text-decoration: none;
    margin-bottom: 16px;
    font-size: 14px;
}

.mde-back-link:hover {
    text-decoration: underline;
}

.mde-fiche h2 {
    font-size: 1.8em;
    color: var(--mde-dark, #1a1a2e);
    margin-bottom: 12px;
}

.mde-fiche h3 {
    font-size: 1.2em;
    color: #333;
    margin-top: 28px;
    margin-bottom: 12px;
    border-bottom: 1px solid #eee;
    padding-bottom: 6px;
}

.mde-fiche-meta,
.mde-fiche-meta-row span {
    color: #666;
    font-size: 14px;
    margin-bottom: 4px;
}

.mde-fiche-meta-row {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.mde-fiche-description {
    line-height: 1.7;
    color: #333;
    margin: 16px 0;
}

.mde-fiche-details p {
    margin: 6px 0;
    color: #444;
}

.mde-tag-list {
    list-style: none;
    padding: 0;
}

.mde-tag-list li {
    padding: 4px 0;
}

.mde-fiche-actions {
    margin-top: 32px;
    display: flex;
    gap: 10px;
}

.mde-fiche-actions .mde-btn {
    padding: 8px 20px;
    font-size: 14px;
    background: #f0f0f0;
    color: #333;
}

.mde-fiche-actions .mde-btn:hover {
    background: #e0e0e0;
}

/* ── KPI cards (fiches detaillees) ────────────────────────── */

.mde-kpi-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin: 16px 0 20px;
}

.mde-kpi-card {
    flex: 1;
    min-width: 110px;
    background: var(--mde-primary-light, #e8f5e9);
    border: 1px solid rgba(var(--mde-primary-rgb, 50,134,51), 0.25);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 14px 16px;
    text-align: center;
}

.mde-kpi-value {
    display: block;
    font-size: 1.8em;
    font-weight: 700;
    color: var(--mde-primary, #328633);
    line-height: 1.2;
}

.mde-kpi-label {
    display: block;
    font-size: 12px;
    color: var(--mde-gray, #555);
    margin-top: 4px;
}

/* ── Contact card ────────────────────────────────────────── */

.mde-contact-card {
    background: #fafbfc;
    border: 1px solid var(--mde-border, #e0e0e0);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 16px 20px;
}

.mde-contact-card a {
    color: var(--mde-primary, #328633);
    text-decoration: none;
}

.mde-contact-card a:hover {
    text-decoration: underline;
}

/* ── Inscription formation ────────────────────────────────── */

.mde-enrollment-box {
    margin-top: 24px;
    padding: 20px;
    background: var(--mde-primary-light, #e8f5e9);
    border: 1px solid rgba(var(--mde-primary-rgb, 50,134,51), 0.25);
    border-radius: var(--mde-radius-lg, 10px);
}

.mde-enrollment-box h3 {
    margin-top: 0;
    border: none;
    padding: 0;
}

/* ── Timeline (front-end) ────────────────────────────────── */
.mde-timeline {
    position: relative;
    padding-left: 28px;
    margin: 16px 0;
}
.mde-timeline::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #ddd;
}
.mde-timeline-item {
    position: relative;
    padding-bottom: 18px;
}
.mde-timeline-item:last-child { padding-bottom: 0; }
.mde-timeline-item::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 4px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--mde-primary, #328633);
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #ddd;
    z-index: 1;
}
.mde-timeline-item.mde-tl-success::before { background: #27ae60; }
.mde-timeline-item.mde-tl-warning::before { background: #f39c12; }
.mde-timeline-item.mde-tl-danger::before { background: #e74c3c; }
.mde-timeline-item.mde-tl-info::before { background: #3498db; }
.mde-timeline-meta {
    font-size: 12px;
    color: var(--mde-gray-light, #888);
    margin-bottom: 2px;
}
.mde-timeline-title {
    font-weight: 600;
    color: var(--mde-dark, #1a1a2e);
    font-size: 14px;
}
.mde-timeline-body {
    margin-top: 4px;
    color: var(--mde-gray, #555);
    font-size: 13px;
    font-style: italic;
}

/* ── Tables (public front-end) ────────────────────────────── */

.mde-table-wrap-public {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--mde-radius-lg, 10px);
    border: 1px solid var(--mde-border, #e0e0e0);
    background: #fff;
}

.mde-table-public {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.mde-table-public thead tr {
    border-bottom: 2px solid #ddd;
    text-align: left;
}

.mde-table-public thead th {
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--mde-gray, #555);
}

.mde-table-public tbody tr {
    border-bottom: 1px solid #f0f0f0;
}

.mde-table-public tbody tr:last-child {
    border-bottom: none;
}

.mde-table-public tbody td {
    padding: 10px 12px;
    vertical-align: middle;
}

/* ── Notifications (public front-end) ────────────────────── */

.mde-notification-item {
    padding: 12px 16px;
    margin-bottom: 8px;
    border-radius: var(--mde-radius, 6px);
    border: 1px solid var(--mde-border, #e0e0e0);
    background: #fff;
}

.mde-notification-item.mde-notification-unread {
    border-color: #b8d4f0;
    background: #f0f7ff;
}

.mde-notification-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.mde-notification-message {
    color: var(--mde-primary, #328633);
}

.mde-notification-action {
    font-size: 12px;
    white-space: nowrap;
}

.mde-notification-read {
    color: #aaa;
    font-size: 12px;
    white-space: nowrap;
}

/* ── Utility classes ─────────────────────────────────────── */

.mde-text-muted {
    color: var(--mde-gray-light, #888);
}

.mde-inline-form {
    display: inline;
}

.mde-btn-xs {
    padding: 4px 12px;
    font-size: 12px;
}

.mde-btn-danger {
    background: #e53e3e;
    color: #fff;
}

.mde-btn-danger:hover {
    background: #c53030;
    color: #fff;
}

/* ── Meeting cards (front-end RDV) ────────────────────────── */

.mde-meeting-card {
    background: #fff;
    border: 1px solid var(--mde-border, #e0e0e0);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 20px;
    margin-bottom: 12px;
    transition: box-shadow 0.2s;
}

.mde-meeting-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mde-meeting-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}

.mde-meeting-detail {
    margin: 4px 0;
    font-size: 14px;
}

.mde-meeting-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eee;
    flex-wrap: wrap;
}

.mde-meeting-confirmed {
    margin-top: 8px;
    color: #155724;
    font-size: 13px;
}

/* ── Observatory report list ──────────────────────────────── */

.mde-report-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 16px;
}

.mde-report-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--mde-border, #e0e0e0);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 20px;
    transition: box-shadow 0.2s;
}

.mde-report-item:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mde-report-item-body h4 {
    margin: 0 0 6px;
}

.mde-report-item-body h4 a {
    text-decoration: none;
    color: var(--mde-primary, #328633);
}

.mde-report-item-body h4 a:hover {
    text-decoration: underline;
}

.mde-report-meta {
    margin: 4px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mde-report-summary {
    color: var(--mde-gray, #555);
    font-size: 14px;
}

.mde-report-item-action {
    flex-shrink: 0;
}

.mde-report-blockquote {
    background: #f0f7ff;
    border-left: 4px solid var(--mde-primary, #328633);
    padding: 12px 16px;
    margin: 20px 0;
    font-style: italic;
    border-radius: 0 var(--mde-radius, 6px) var(--mde-radius, 6px) 0;
}

/* ── Messaging (public front-end) ────────────────────────── */

.mde-inbox-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.mde-inbox-header h2 {
    margin: 0;
}

.mde-thread-link {
    display: block;
    text-decoration: none;
    color: inherit;
    margin-bottom: 8px;
}

.mde-thread-link:hover {
    text-decoration: none;
}

.mde-thread-link.mde-thread-link-unread {
    border-left: 3px solid var(--mde-primary, #328633);
}

.mde-thread-link .mde-card-public,
.mde-thread-link {
    background: #fff;
    border: 1px solid var(--mde-border, #e0e0e0);
    border-radius: var(--mde-radius-lg, 10px);
    padding: 16px 20px;
    transition: box-shadow 0.2s;
}

.mde-thread-link:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mde-thread-link-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.mde-thread-preview {
    margin: 4px 0 0;
    color: var(--mde-gray, #555);
    font-size: 14px;
}

.mde-thread-date {
    color: var(--mde-gray-light, #888);
    font-size: 12px;
    white-space: nowrap;
}

.mde-thread-container-public {
    max-height: 500px;
    overflow-y: auto;
    border: 1px solid var(--mde-border, #e0e0e0);
    padding: 12px;
    margin: 16px 0;
    border-radius: var(--mde-radius, 6px);
    background: #fafbfc;
}

.mde-message-bubble-public {
    margin-bottom: 12px;
    padding: 10px 14px;
    background: #f5f5f5;
    border-radius: var(--mde-radius, 6px);
}

.mde-message-bubble-public:last-child {
    margin-bottom: 0;
}

.mde-message-bubble-public.mde-message-own {
    background: #e8f4fd;
}

.mde-message-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.mde-message-time {
    color: var(--mde-gray-light, #888);
    font-size: 12px;
}

.mde-message-body {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

@media (max-width: 600px) {
    .mde-search-row {
        flex-direction: column;
    }
    .mde-results-grid {
        grid-template-columns: 1fr;
    }
    .mde-tabs {
        flex-direction: column;
    }
    .mde-fiche-meta-row {
        flex-direction: column;
        gap: 4px;
    }
    .mde-notification-content {
        flex-direction: column;
        align-items: flex-start;
    }
    .mde-table-public thead th,
    .mde-table-public tbody td {
        padding: 8px 10px;
        font-size: 13px;
    }
    .mde-inbox-header {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .mde-thread-link-content {
        flex-direction: column;
    }
    .mde-thread-container-public {
        max-height: 350px;
    }
    .mde-report-item {
        flex-direction: column;
        align-items: stretch;
    }
    .mde-report-item-action {
        text-align: right;
    }
    .mde-kpi-row {
        gap: 10px;
    }
    .mde-kpi-card {
        min-width: 80px;
    }
}
