/* Analyse sol & recommandations IA — fiche parcelle */
.parcel-soil-block {
    border: 1px solid #e2e6ea;
    border-radius: 0.75rem;
    background: linear-gradient(180deg, #fafbfc 0%, #ffffff 100%);
    padding: 1.15rem 1.25rem 1rem;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}

.parcel-soil-block--preview {
    margin-top: 0.75rem;
    animation: parcelSoilFadeIn 0.35s ease-out;
}

@keyframes parcelSoilFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.parcel-soil-preview-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #198754;
    background: rgba(25, 135, 84, 0.1);
    border: 1px solid rgba(25, 135, 84, 0.18);
    border-radius: 2rem;
    padding: 0.25rem 0.7rem;
    margin-bottom: 0.85rem;
}

.parcel-soil-preview-hint {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(25, 135, 84, 0.18);
}

.parcel-npk-cards {
    margin-bottom: 0 !important;
}

/* Cartes NPK — trois identités visuelles distinctes (N bleu, P vert,
   K jaune/orangé) appliquées sur bordure, fond léger, titre et valeur.
   Le thème global (theme.css) écrase `.card` et `.card:hover` avec une
   bordure grise/verte uniforme : on force donc chaque couleur avec une
   spécificité supérieure et !important pour garantir le rendu partout. */
.parcel-npk-cards .card.parcel-npk-card {
    border-width: 1px;
    border-style: solid;
    border-radius: 0.5rem;
    overflow: hidden;
}

.parcel-npk-cards .parcel-npk-title {
    font-weight: 700 !important;
    margin-bottom: 0.5rem;
}

.parcel-npk-cards .parcel-npk-value {
    font-weight: 700 !important;
}

.parcel-npk-cards .parcel-npk-unit {
    font-size: 0.45em;
    font-weight: 600;
    opacity: 0.85;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.parcel-npk-cards .parcel-npk-unavailable {
    font-size: 0.55em;
    font-weight: 600;
    opacity: 0.75;
    letter-spacing: 0.01em;
}

/* Azote (N) — bleu */
.parcel-npk-cards .card.parcel-npk-card--n,
.parcel-npk-cards .card.parcel-npk-card--n:hover {
    border-color: #0d6efd !important;
    background-color: #eff5ff !important;
}

.parcel-npk-cards .parcel-npk-card--n .parcel-npk-title,
.parcel-npk-cards .parcel-npk-card--n .parcel-npk-value {
    color: #0a58ca !important;
}

/* Phosphore (P) — vert */
.parcel-npk-cards .card.parcel-npk-card--p,
.parcel-npk-cards .card.parcel-npk-card--p:hover {
    border-color: #198754 !important;
    background-color: #ecf9f1 !important;
}

.parcel-npk-cards .parcel-npk-card--p .parcel-npk-title,
.parcel-npk-cards .parcel-npk-card--p .parcel-npk-value {
    color: #146c43 !important;
}

/* Potassium (K) — jaune/orangé */
.parcel-npk-cards .card.parcel-npk-card--k,
.parcel-npk-cards .card.parcel-npk-card--k:hover {
    border-color: #f5a623 !important;
    background-color: #fff8e9 !important;
}

.parcel-npk-cards .parcel-npk-card--k .parcel-npk-title,
.parcel-npk-cards .parcel-npk-card--k .parcel-npk-value {
    color: #b06f00 !important;
}

/* Grille propriétés agronomiques (pH, M.O., texture, oligo-éléments…) */
.parcel-soil-props {
    margin-top: 0.85rem;
    margin-bottom: 0.85rem;
}

.parcel-soil-props__section + .parcel-soil-props__section {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed rgba(25, 135, 84, 0.15);
}

.parcel-soil-props__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #198754;
    margin-bottom: 0.55rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.parcel-soil-prop-card {
    border: 1px solid #e2e6ea;
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.55rem 0.65rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Oligo-éléments — même design que les cartes NPK (bordure, fond, titre, valeur) */
.parcel-trace-section {
    margin-top: 0.15rem;
}

.parcel-trace-section__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #198754;
    margin-bottom: 0.55rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.parcel-trace-cards {
    margin-bottom: 0 !important;
}

.parcel-trace-cards .card.parcel-trace-card {
    border-width: 1px;
    border-style: solid;
    border-radius: 0.5rem;
    overflow: hidden;
}

.parcel-trace-cards .parcel-trace-title {
    font-size: 0.82rem;
    font-weight: 700 !important;
    margin-bottom: 0.35rem;
    line-height: 1.2;
}

.parcel-trace-cards .parcel-trace-value {
    font-size: 1.35rem;
    font-weight: 700 !important;
    line-height: 1.2;
}

.parcel-trace-cards .parcel-trace-unit {
    font-size: 0.45em;
    font-weight: 600;
    opacity: 0.85;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.parcel-trace-cards .parcel-trace-unavailable {
    font-size: 0.72em;
    font-weight: 600;
    opacity: 0.75;
}

.parcel-trace-cards .parcel-trace-level {
    font-size: 0.72rem;
    line-height: 1.25;
    margin-top: 0.15rem;
}

.parcel-trace-cards .parcel-trace-level__label {
    display: block;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.7;
    margin-bottom: 0.1rem;
}

.parcel-trace-cards .parcel-trace-level__value {
    font-weight: 700;
}

/*
 * Oligo-éléments — palette propre, distincte du NPK (bleu / vert / orangé).
 * Chaque élément a sa teinte : fond léger, bordure et texte assortis.
 */
.parcel-trace-cards .card.parcel-trace-card--calcium,
.parcel-trace-cards .card.parcel-trace-card--calcium:hover {
    border-color: #14b8a6 !important;
    background-color: #f0fdfa !important;
}
.parcel-trace-cards .parcel-trace-card--calcium .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--calcium .parcel-trace-value {
    color: #0f766e !important;
}

.parcel-trace-cards .card.parcel-trace-card--copper,
.parcel-trace-cards .card.parcel-trace-card--copper:hover {
    border-color: #d97706 !important;
    background-color: #fffbeb !important;
}
.parcel-trace-cards .parcel-trace-card--copper .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--copper .parcel-trace-value {
    color: #b45309 !important;
}

.parcel-trace-cards .card.parcel-trace-card--iron,
.parcel-trace-cards .card.parcel-trace-card--iron:hover {
    border-color: #e11d48 !important;
    background-color: #fff1f2 !important;
}
.parcel-trace-cards .parcel-trace-card--iron .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--iron .parcel-trace-value {
    color: #be123c !important;
}

.parcel-trace-cards .card.parcel-trace-card--magnesium,
.parcel-trace-cards .card.parcel-trace-card--magnesium:hover {
    border-color: #6366f1 !important;
    background-color: #eef2ff !important;
}
.parcel-trace-cards .parcel-trace-card--magnesium .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--magnesium .parcel-trace-value {
    color: #4f46e5 !important;
}

.parcel-trace-cards .card.parcel-trace-card--manganese,
.parcel-trace-cards .card.parcel-trace-card--manganese:hover {
    border-color: #9333ea !important;
    background-color: #faf5ff !important;
}
.parcel-trace-cards .parcel-trace-card--manganese .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--manganese .parcel-trace-value {
    color: #7e22ce !important;
}

.parcel-trace-cards .card.parcel-trace-card--sulfur,
.parcel-trace-cards .card.parcel-trace-card--sulfur:hover {
    border-color: #ca8a04 !important;
    background-color: #fefce8 !important;
}
.parcel-trace-cards .parcel-trace-card--sulfur .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--sulfur .parcel-trace-value {
    color: #a16207 !important;
}

.parcel-trace-cards .card.parcel-trace-card--zinc,
.parcel-trace-cards .card.parcel-trace-card--zinc:hover {
    border-color: #0284c7 !important;
    background-color: #f0f9ff !important;
}
.parcel-trace-cards .parcel-trace-card--zinc .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--zinc .parcel-trace-value {
    color: #0369a1 !important;
}

.parcel-trace-cards .card.parcel-trace-card--boron,
.parcel-trace-cards .card.parcel-trace-card--boron:hover {
    border-color: #db2777 !important;
    background-color: #fdf2f8 !important;
}
.parcel-trace-cards .parcel-trace-card--boron .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--boron .parcel-trace-value {
    color: #be185d !important;
}

.parcel-trace-cards .card.parcel-trace-card--sodium,
.parcel-trace-cards .card.parcel-trace-card--sodium:hover {
    border-color: #64748b !important;
    background-color: #f8fafc !important;
}
.parcel-trace-cards .parcel-trace-card--sodium .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--sodium .parcel-trace-value {
    color: #475569 !important;
}

.parcel-trace-cards .card.parcel-trace-card--molybdenum,
.parcel-trace-cards .card.parcel-trace-card--molybdenum:hover {
    border-color: #059669 !important;
    background-color: #ecfdf5 !important;
}
.parcel-trace-cards .parcel-trace-card--molybdenum .parcel-trace-title,
.parcel-trace-cards .parcel-trace-card--molybdenum .parcel-trace-value {
    color: #047857 !important;
}

.parcel-soil-prop-card__label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
    line-height: 1.2;
}

.parcel-soil-prop-card__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1d2b24;
    line-height: 1.25;
}

.parcel-soil-prop-card__unit {
    font-size: 0.72em;
    font-weight: 600;
    color: #5b6b63;
}

.parcel-ai-reco--compact {
    margin-top: 0.15rem;
    padding-top: 0.85rem;
    border-top: 1px dashed rgba(25, 135, 84, 0.2);
}

.parcel-ai-reco-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #198754;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.parcel-ai-reco-meta,
.parcel-ai-reco-date {
    font-size: 0.78rem;
    color: #6c757d;
}

.parcel-ai-reco-table {
    font-size: 0.84rem;
}

.parcel-ai-reco-table thead th {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #495057;
    background: rgba(25, 135, 84, 0.06);
    border-bottom-width: 1px;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    white-space: nowrap;
}

.parcel-ai-reco-table tbody td {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    vertical-align: middle;
}

.parcel-ai-potential {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.28em 0.55em;
}

.parcel-ai-potential--high {
    background: rgba(25, 135, 84, 0.15);
    color: #146c43;
}

.parcel-ai-potential--good {
    background: rgba(13, 110, 253, 0.12);
    color: #0a58ca;
}

.parcel-ai-potential--mod {
    background: rgba(108, 117, 125, 0.15);
    color: #495057;
}

.parcel-ai-score {
    display: inline-block;
    min-width: 2.75rem;
    padding: 0.15rem 0.4rem;
    border-radius: 0.35rem;
    font-size: 0.8rem;
    line-height: 1.2;
}

.parcel-ai-score--high {
    background: rgba(25, 135, 84, 0.12);
    color: #146c43;
}

.parcel-ai-score--good {
    background: rgba(13, 110, 253, 0.1);
    color: #0a58ca;
}

.parcel-ai-score--mod {
    background: rgba(108, 117, 125, 0.1);
    color: #495057;
}

.parcel-ai-rationale {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    font-size: 0.8rem;
    line-height: 1.25;
}

.parcel-ai-reco-table tbody td .d-md-none.parcel-ai-rationale {
    margin-top: 0.1rem;
    font-size: 0.72rem;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .parcel-soil-block {
        padding: 0.9rem 0.8rem;
    }
}
