*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --bg:       #f5f5f5;
    --card:     #ffffff;
    --texte:    #1a1a1a;
    --gris:     #6b7280;
    --gris-2:   #9ca3af;
    --bordure:  #e0e0e0;
    --bleu:     #2563eb;
    --bleu-bg:  #eff6ff;
    --vert:     #16a34a;
    --vert-bg:  #f0fdf4;
    --rouge:    #dc2626;
    --jaune-bg: #fefce8;
    --jaune-bd: #ca8a04;
    --radius:   10px;
    --shadow:   0 1px 4px rgba(0,0,0,0.07);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--bg);

        background-image: 
        linear-gradient(to bottom, rgba(255, 255, 255, 0) 70%, var(--bg) 100%),
        url(bg.jpg);
        background-repeat: no-repeat;

        background-size: cover; /* 'cover' est souvent préférable à 100% pour éviter les déformations */
        background-attachment: fixed; /* Optionnel : garde le fond fixe au scroll */
        background-color: var(--bg); /* Doit correspondre à la couleur finale du dégradé */

    color: var(--texte);
    min-height: 100vh;
    font-size: 15px;
}

header {
    background: rgb(255 255 255 / 90%);
    backdrop-filter: blur(2px);
    color:#2563eb;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
}

.logo { font-size: 1rem; font-weight: 700; }
.logo em { font-style: normal; color: #93c5fd; }

.pseudo-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgb(255 255 255);
    border: 1px solid var(--bleu);
    border-radius: 20px;
    padding: 5px 13px;
    font-size: 0.8rem;
    cursor: pointer;
    color: var(--bleu);
}

.pseudo-badge svg { flex-shrink: 0; }

main { max-width: 660px; margin: 0 auto; padding: 20px 16px 60px; }

/* -- poser une question -- */
.ask-section {
    background: var(--bleu);
    border-radius: var(--radius);
    padding: 20px 20px 22px 20px;
    margin-bottom: 24px;
}

.ask-section h1 {
    font-size: clamp(1rem, 4vw, 1.5rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 4px;
}

.ask-section p { color: #8fbaff; font-size: 0.82rem; margin-bottom: 14px; }

.ask-form {
    /* display: flex; */
    flex-direction: column;
    gap: 8px;
}

.ask-form textarea {
    width: 100%;
    border: none;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 0.95rem;
    font-family: inherit;
    resize: none;
    min-height: 76px;
    background: #fff;
    color: var(--texte);
    outline: none;
}

.ask-form textarea:focus { outline: 2px solid #60a5fa; outline-offset: 0; }

.hp-field { display: none !important; }

.ask-form button {
    background: #eba725;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 11px 20px 12px 20px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    align-self: flex-end;
}

.ask-form button:disabled { opacity: 0.5; cursor: not-allowed; }

.ask-status { font-size: 0.82rem; padding: 9px 12px; border-radius: 6px; display: none; }
.ask-status.success { background: var(--vert-bg); color: var(--vert); display: block; }
.ask-status.error   { background: #fef2f2; color: var(--rouge); display: block; }

/* -- IA -- */
.ask-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

#aiReformatBtn {
    display: flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: 1px solid rgba(255,255,255,0.25);
    color: #93c5fd;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 0.8rem;
    cursor: pointer;
    white-space: nowrap;
}

#aiReformatBtn:disabled { opacity: 0.5; cursor: not-allowed; }

.ai-suggestion {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    padding: 12px 14px;
    margin-top: 8px;
}

.ai-suggestion-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: #0284c7;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.ai-suggestion-text {
    font-size: 0.9rem;
    color: var(--texte);
    line-height: 1.5;
    margin-bottom: 10px;
}

.ai-suggestion-actions { display: flex; gap: 8px; }

.btn-ai-accept {
    background: #0284c7;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.btn-ai-refuse {
    background: none;
    color: var(--gris);
    border: 1px solid var(--bordure);
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 0.82rem;
    cursor: pointer;
}

/* -- slider -- */
.section-title {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--gris);
    margin-bottom: 10px;
}

.slider-section { margin-bottom: 24px; }

.slider-card {
    background: var(--jaune-bg);
    border-radius: var(--radius);
    padding: 2em;
}

.slider-counter { font-size: 0.72rem; color: var(--gris); margin-bottom: 8px; }
.slider-question-text { font-size: clamp(0.92rem, 3.5vw, 1.25rem); font-weight: 600; line-height: 1.5; margin-bottom: 6px; }
.slider-author { font-size: 0.75rem; color: var(--gris); margin-bottom: 14px; }

.slider-answer-form textarea {
    width: 100%;
    border: 1px solid var(--bordure);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 0.92rem;
    font-family: inherit;
    resize: none;
    min-height: 66px;
    outline: none;
    margin-bottom: 8px;
    background: #fff;
}

.slider-answer-form textarea:focus { outline: 2px solid var(--bleu); outline-offset: 0; }

.slider-actions { display: flex; gap: 8px; }

.btn-repondre {
    background: var(--bleu);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 9px 16px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    flex: 1;
}

.btn-passer {
    background: transparent;
    color: var(--gris);
    border: 1px solid var(--bordure);
    border-radius: 8px;
    padding: 9px 14px;
    font-size: 0.88rem;
    cursor: pointer;
}

.slider-empty { text-align: center; color: var(--gris); font-size: 0.88rem; padding: 16px 0; }

/* -- liste questions -- */
.questions-section { margin-bottom: 24px; }

.question-card {
    background: var(--card);
    border-radius: var(--radius);
    padding: 1.5em 2.5vw;
    margin-bottom: 1em;
    cursor: pointer;
    border: 2px solid #fff;
}

.question-card.open {
    box-shadow: var(--shadow);
    border: 2px solid var(--bleu);
}

.question-card:hover {
    box-shadow: 1px 1px 25px rgba(0,0,0,0.1);
}

.question-card.flagged-card { border-color: #fca5a5; background: #fff5f5; }

.question-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; flex-wrap: wrap; }

.tag-statut { font-size: 0.68rem; font-weight: 600; padding: 2px 8px; border-radius: 20px; background: var(--bleu-bg); color: var(--bleu); }
.tag-statut.no-answer { background: var(--jaune-bg); color: var(--jaune-bd); }
.tag-flagged { font-size: 0.68rem; font-weight: 600; padding: 2px 8px; border-radius: 20px; background: #fef2f2; color: var(--rouge); }

.question-author-date { font-size: 0.72rem; color: var(--gris-2); margin-left: auto; }
.question-text { font-size: clamp(0.88rem, 3.2vw, 1.25rem); font-weight: 600; line-height: 1.5; margin-bottom: 8px; }

.question-stats {
    display: flex;
    gap: 12px;
    font-size: 0.75rem;
    color: var(--gris);
    align-items: center;
}

.question-stats span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.btn-share {
    display: flex;
    align-items: center;
    color: var(--gris-2);
    text-decoration: none;
}

.btn-report-q {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    background: none;
    border: none;
    font-size: 0.72rem;
    color: var(--gris-2);
    cursor: pointer;
    padding: 0;
}

/* footer de question (visible dans le détail) */
.question-footer {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 0 4px;
    border-top: 1px solid var(--bordure);
    margin-bottom: 12px;
}

.question-permalink {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.72rem;
    color: var(--gris);
}

.permalink-label { font-weight: 600; white-space: nowrap; }

.permalink-url {
    color: var(--bleu);
    word-break: break-all;
    flex: 1;
}

.btn-copy-link {
    display: flex;
    align-items: center;
    background: none;
    border: 1px solid var(--bordure);
    border-radius: 5px;
    padding: 3px 7px;
    cursor: pointer;
    color: var(--gris);
    flex-shrink: 0;
}

.question-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.75rem;
    color: var(--gris);
}

.question-stat {
    display: flex;
    align-items: center;
    gap: 4px;
}

.question-detail { 
    display: none; 
    padding-top: 14px;  
    margin-top: 12px; 
}
.question-card.open .question-detail { display: block; }

/* tags */
.question-tags {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-top: 6px;
    margin-bottom: 4px;
}

.tag {
    font-size: 0.65rem;
    font-weight: 600;
    background: #f1f5f9;
    color: #475569;
    border-radius: 20px;
    padding: 2px 8px;
}

/* -- réponses -- */
.answer-item { background: #fafafa; border: 1px solid var(--bordure); border-radius: 8px; padding: 11px 13px; margin-bottom: 8px; }
.answer-item.flagged-answer { border-color: #fca5a5; background: #fff5f5; }

.answer-text { font-size: 0.88rem; line-height: 1.55; margin-bottom: 8px; }

.answer-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px; }
.answer-author { font-size: 0.72rem; color: var(--gris); }
.answer-actions { display: flex; align-items: center; gap: 6px; }

.answer-valid-badge { font-size: 0.68rem; font-weight: 600; color: var(--vert); background: var(--vert-bg); padding: 2px 7px; border-radius: 20px; }

.btn-vote-up {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    background: none;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: 2px 9px;
    cursor: pointer;
    color: var(--bleu);
}

.btn-vote-down {
    display: flex;
    align-items: center;
    font-size: 0.72rem;
    background: none;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 2px 9px;
    cursor: pointer;
    color: #ef4444;
}

.btn-report-a {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    background: none;
    border: none;
    color: var(--gris-2);
    cursor: pointer;
}

/* -- formulaire inline -- */
.inline-answer-form { margin-top: 12px; }

.inline-answer-form textarea {
    width: 100%;
    border: 1px solid var(--bordure);
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 0.88rem;
    font-family: inherit;
    resize: none;
    min-height: 64px;
    outline: none;
    margin-bottom: 7px;
    background: #fff;
}

.inline-answer-form textarea:focus { outline: 2px solid var(--bleu); outline-offset: 0; }

.inline-answer-form button {
    background: var(--bleu);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.loading-text { text-align: center; color: var(--gris); padding: 24px 0; font-size: 0.88rem; }

/* -- toast -- */
#toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(80px);
    background: #1e293b;
    color: #fff;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    z-index: 999;
    transition: transform 0.3s ease;
    white-space: nowrap;
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}

#toast.show { transform: translateX(-50%) translateY(0); }
#toast.err  { background: var(--rouge); }

@media (min-width: 1000px) {
    main { padding: 28px 20px 80px; }
    .ask-form { flex-direction: row; align-items: flex-end; }
    .ask-form textarea { min-height: 56px; }
    .ask-form button { align-self: auto; white-space: nowrap; }
}
