/**
 * [2026-05-20] AJOUT - Design system AdnsFieldFront : tokens et classes display mode
 *
 * CONTEXTE : Spec issue de ux-system/CHARTE.md §9 et COMPOSANTS.md §8.
 *            Remplace le recours a form-control-plaintext (Bootstrap) pour les champs
 *            en lecture seule. Garantit : aucune bordure, aucun fond, typographie
 *            differenciee label/valeur conforme a la charte AlgoData.
 * AUTEUR : Antoine LAGIER / Cursor AI
 * REFERENCE : Conversation Cursor du 2026-05-20
 */

/* =========================================================================
   TOKENS CSS — Design system AlgoData (source de verite : CHARTE.md §9)
   Toute modification de ces valeurs doit etre reportee dans CHARTE.md.
   ========================================================================= */

:root {
    /* Hierarchie texte */
    --adns-text-primary   : #1A1A2E;
    --adns-text-secondary : #4A5568;
    --adns-text-tertiary  : #6B7280;

    /* Label de champ (mode display) */
    --adns-field-label-size    : 11px;
    --adns-field-label-weight  : 500;
    --adns-field-label-spacing : 0.06em;

    /* Valeur de champ (mode display) */
    --adns-field-value-size   : 14px;
    --adns-field-value-weight : 400;

    /* Espacement entre champs */
    --adns-field-gap : 14px;

    /* [2026-05-20] AJOUT - Tokens AdnsFieldFrontRow (CDC_AdnsFieldFrontRow v1.0) */
    --adns-row-gap-compact : 8px;
    --adns-row-gap-normal  : 16px;
    --adns-row-gap-wide    : 24px;

    --adns-row-breakpoint-tablet  : 768px;
    --adns-row-breakpoint-desktop : 1200px;

    --adns-border-subtle       : rgba(0, 0, 0, 0.08);
    --adns-row-divider-spacing : 14px;

    /* [2026-05-21] AJOUT - Tokens AdnsKpiTile (CDC AdnsKpiTile) */
    --adns-kpi-padding         : 12px 14px;
    --adns-kpi-icon-size       : 32px;
    --adns-kpi-icon-font-size  : 14px;
    --adns-kpi-gap             : 10px;

    --adns-kpi-label-size      : 10px;
    --adns-kpi-label-spacing   : 0.06em;
    --adns-kpi-value-size      : 18px;
    --adns-kpi-value-weight    : 500;
    --adns-kpi-suffix-size     : 12px;
    --adns-kpi-secondary-size  : 12px;

    --adns-kpi-tone-default-bg : #F3F4F6;
    --adns-kpi-tone-info-bg    : #E6F1FB;
    --adns-kpi-tone-success-bg : #E1F5EE;
    --adns-kpi-tone-warning-bg : #FAEEDA;
    --adns-kpi-tone-danger-bg  : #FCE7E7;

    --adns-kpi-tone-default-fg : #6B7280;
    --adns-kpi-tone-info-fg    : #185FA5;
    --adns-kpi-tone-success-fg : #0F6E56;
    --adns-kpi-tone-warning-fg : #854F0B;
    --adns-kpi-tone-danger-fg  : #B42318;

    --adns-kpi-hover-border    : var(--adns-link, #2B5EA7);

    /* [2026-05-24] Tokens AdnsHealthTile (CDC AdnsHealthTile) */
    --adns-health-padding        : 14px 16px;
    --adns-health-icon-size      : 40px;
    --adns-health-icon-font-size : 16px;
    --adns-health-gap            : 12px;
    --adns-health-label-size     : 11px;
    --adns-health-verdict-size   : 14px;
    --adns-health-verdict-weight : 500;
    --adns-health-score-size     : 12px;
    --adns-health-meta-size      : 11px;
    --adns-health-success-bg     : #E1F5EE;
    --adns-health-warn-bg        : #FAEEDA;
    --adns-health-danger-bg      : #FCE7F7;
    --adns-health-neutral-bg     : #F3F4F6;
    --adns-health-success-fg     : #0F6E56;
    --adns-health-warn-fg        : #854F0B;
    --adns-health-danger-fg      : #B42318;
    --adns-health-neutral-fg     : #6B7280;
    --adns-health-hover-border   : var(--adns-link, #2B5EA7);
}

/* =========================================================================
   BLOC de champ — .adns-field
   Conteneur flex colonne du couple label + valeur.
   ========================================================================= */

.adns-field {
    display        : flex;
    flex-direction : column;
    margin-bottom  : var(--adns-field-gap);
}

/* Suppression de la marge sur le dernier champ d'un groupe (density=none) */
.adns-field-no-gap {
    margin-bottom : 0;
}

/* =========================================================================
   LABEL — .adns-field-label
   Libelle en majuscules, mute, espacement de lettres.
   ========================================================================= */

.adns-field-label {
    display        : block;
    font-size      : var(--adns-field-label-size);
    font-weight    : var(--adns-field-label-weight);
    color          : var(--adns-text-tertiary);
    text-transform : uppercase;
    letter-spacing : var(--adns-field-label-spacing);
    margin-bottom  : 4px;
    line-height    : 1.2;
    /* Garantie : aucun fond, aucune bordure en mode display */
    background     : none;
    border         : none;
}

/* =========================================================================
   VALEUR — .adns-field-value
   Corps principal, couleur primaire.
   ========================================================================= */

.adns-field-value {
    display     : block;
    font-size   : var(--adns-field-value-size);
    font-weight : var(--adns-field-value-weight);
    color       : var(--adns-text-primary);
    line-height : 1.5;
    /* Garantie : aucun fond, aucune bordure, aucun padding Bootstrap residuel */
    background  : none;
    border      : none;
    padding     : 0;
    margin      : 0;
}

/* =========================================================================
   VARIANTE INLINE (preset form-view) — .adns-field-inline
   Layout row Bootstrap ; le label est dans une colonne, la valeur dans une autre.
   La spec typographique label/valeur s'applique identiquement.
   ========================================================================= */

.adns-field-inline {
    /* Pas de flex column : le row Bootstrap gere la disposition */
    margin-bottom : var(--adns-field-gap);
}

/* Label inline : aligne a droite en form-view, conserve la typo */
.adns-field-inline .adns-field-label {
    margin-bottom : 0;       /* Pas de marge bas en inline : aligne avec la valeur */
    padding-top   : 6px;     /* Alignement vertical avec la valeur (compense line-height) */
}

/* =========================================================================
   SUBLABEL — texte secondaire sous la valeur
   ========================================================================= */

.adns-field-sublabel {
    display     : block;
    font-size   : 12px;
    color       : var(--adns-text-secondary);
    margin-top  : 2px;
    line-height : 1.4;
}

/* =========================================================================
   [2026-05-20] AJOUT - AdnsFieldFrontRow (grille de champs)
   CONTEXTE : composant infrastructure pour aligner des AdnsFieldFront
              en colonnes sans HTML row/col dans les pages metier.
   DEPENDANCES : web.components.utils.AdnsFieldFrontRow, AdnsFieldFront
   AUTEUR : Antoine LAGIER / Cursor AI
   REFERENCE : CDC_AdnsFieldFrontRow.md - Conversation Cursor du 2026-05-20
   ========================================================================= */

.adns-row {
    display : grid;
}

/* Gaps */
.adns-row-gap-compact { gap : var(--adns-row-gap-compact); }
.adns-row-gap-normal  { gap : var(--adns-row-gap-normal); }
.adns-row-gap-wide    { gap : var(--adns-row-gap-wide); }

/* Alignement vertical */
.adns-row-align-top      { align-items : start; }
.adns-row-align-center   { align-items : center; }
.adns-row-align-baseline { align-items : baseline; }

/* [2026-05-20] AJOUT - Mode stretch : hauteur uniforme entre tuiles (usage AdnsKpiTile cliquables)
   AUTEUR : Antoine LAGIER / Cursor AI
   RÉFÉRENCE : Conversation Cursor du 2026-05-20 / DECISIONS.md AdnsKpiTile V2 */
.adns-row-stretch        { align-items : stretch; }
.adns-row-stretch > .adns-kpi { height : 100%; }

/* Colonnes desktop */
.adns-row-cols-1 { grid-template-columns : 1fr; }
.adns-row-cols-2 { grid-template-columns : repeat(2, 1fr); }
.adns-row-cols-3 { grid-template-columns : repeat(3, 1fr); }
.adns-row-cols-4 { grid-template-columns : repeat(4, 1fr); }

/* Responsive (desactive si .adns-row-no-responsive) */
@media (max-width: 1199px) {
    .adns-row:not(.adns-row-no-responsive).adns-row-cols-3,
    .adns-row:not(.adns-row-no-responsive).adns-row-cols-4 {
        grid-template-columns : repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .adns-row:not(.adns-row-no-responsive).adns-row-cols-2,
    .adns-row:not(.adns-row-no-responsive).adns-row-cols-3,
    .adns-row:not(.adns-row-no-responsive).adns-row-cols-4 {
        grid-template-columns : 1fr;
    }
}

/* Field traversant */
.adns-row > .adns-field[data-fullwidth="true"],
.adns-row > .adns-field.adns-field-fullwidth {
    grid-column : 1 / -1;
}

/* Effondrement auto si un seul field visible dans la row */
.adns-row:has(> .adns-field:only-child) {
    grid-template-columns : 1fr;
}

/* Separateurs */
.adns-row-divider-none { border: none; }

.adns-row-divider-top {
    border-top : 0.5px solid var(--adns-border-subtle);
    padding-top : var(--adns-row-divider-spacing);
    margin-top : var(--adns-row-divider-spacing);
}

.adns-row-divider-bottom {
    border-bottom : 0.5px solid var(--adns-border-subtle);
    padding-bottom : var(--adns-row-divider-spacing);
    margin-bottom : var(--adns-row-divider-spacing);
}

/* =========================================================================
   [2026-05-21] AJOUT - Styles AdnsKpiTile
   CONTEXTE : CDC_AdnsKpiTile.md -> tuiles KPI à aligner dans une AdnsFieldFrontRow.
   DEPENDANCES : web.components.utils.AdnsKpiTile
   AUTEUR : Antoine LAGIER / Cursor AI
   REFERENCE : CDC_AdnsKpiTile.md - Conversation Cursor du 2026-05-21
   ========================================================================= */

.adns-kpi {
    display        : flex;
    align-items    : center;
    gap            : var(--adns-kpi-gap);
    background     : #ffffff;
    border         : 0.5px solid rgba(0, 0, 0, 0.12);
    border-radius  : 6px;
    padding        : var(--adns-kpi-padding);
    transition     : border-color 150ms ease, box-shadow 150ms ease;
}

.adns-kpi-icon {
    width          : var(--adns-kpi-icon-size);
    height         : var(--adns-kpi-icon-size);
    border-radius  : 6px;
    display        : flex;
    align-items    : center;
    justify-content : center;
    font-size      : var(--adns-kpi-icon-font-size);
    flex-shrink    : 0;
}

.adns-kpi-content {
    flex       : 1;
    min-width  : 0;
}

.adns-kpi-label {
    display        : block;
    font-size      : var(--adns-kpi-label-size);
    font-weight    : 500;
    letter-spacing : var(--adns-kpi-label-spacing);
    text-transform : uppercase;
    color          : var(--adns-text-tertiary);
    margin         : 0 0 4px 0;
    line-height    : 1.4;
}

.adns-kpi-value {
    font-size   : var(--adns-kpi-value-size);
    font-weight : var(--adns-kpi-value-weight);
    color       : var(--adns-text-primary);
    margin      : 0;
    line-height : 1.1;
    display     : flex;
    align-items : baseline;
    gap         : 6px;
}

.adns-kpi-suffix {
    font-size : var(--adns-kpi-suffix-size);
    color     : var(--adns-text-secondary);
}

.adns-kpi-secondary {
    display      : block;
    font-size    : var(--adns-kpi-secondary-size);
    color        : var(--adns-text-secondary);
    margin       : 2px 0 0 0;
    line-height  : 1.3;
}

.adns-kpi-tone-default .adns-kpi-icon { background: var(--adns-kpi-tone-default-bg); color: var(--adns-kpi-tone-default-fg); }
.adns-kpi-tone-info    .adns-kpi-icon { background: var(--adns-kpi-tone-info-bg);    color: var(--adns-kpi-tone-info-fg); }
.adns-kpi-tone-success .adns-kpi-icon { background: var(--adns-kpi-tone-success-bg); color: var(--adns-kpi-tone-success-fg); }
.adns-kpi-tone-warning .adns-kpi-icon { background: var(--adns-kpi-tone-warning-bg); color: var(--adns-kpi-tone-warning-fg); }
.adns-kpi-tone-danger  .adns-kpi-icon { background: var(--adns-kpi-tone-danger-bg);  color: var(--adns-kpi-tone-danger-fg); }

.adns-kpi-clickable {
    cursor           : pointer;
    text-decoration  : none;
    color            : inherit;
}
.adns-kpi-clickable:hover {
    border-color : var(--adns-kpi-hover-border);
    box-shadow   : 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* =========================================================================
   AdnsHealthTile — pattern V2 (2026-06-10)
   Score XL + Badge status court + Meta ligne
   AUTEUR : Antoine LAGIER / Cursor AI - REFERENCE : MADNS-3154
   ========================================================================= */

/* --- Conteneur principal --- */
.adns-health-tile {
    display         : flex;
    align-items     : center;
    gap             : var(--adns-health-gap);
    padding         : var(--adns-health-padding);
    border          : 0.5px solid rgba(0, 0, 0, 0.12);
    border-radius   : 10px;
    background      : #fff;
    transition      : border-color 150ms ease, box-shadow 150ms ease;
    text-decoration : none;
    color           : inherit;
}

.adns-health-tile-clickable {
    cursor : pointer;
}
.adns-health-tile-clickable:hover,
button:hover > .adns-health-tile-clickable,
button:focus-visible > .adns-health-tile-clickable {
    border-color : var(--adns-health-hover-border);
    box-shadow   : 0 1px 4px rgba(0, 0, 0, 0.06);
}

/* --- Icone container --- */
.adns-tile-icon {
    width           : var(--adns-health-icon-size);
    height          : var(--adns-health-icon-size);
    border-radius   : 8px;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : var(--adns-health-icon-font-size);
    flex-shrink     : 0;
}

/* --- Body (label + score + meta) --- */
.adns-tile-body {
    flex      : 1;
    min-width : 0;
}

/* --- Header : label uppercase + badge status --- */
.adns-tile-header {
    display     : flex;
    align-items : center;
    gap         : 8px;
    margin      : 0 0 4px 0;
}

.adns-tile-label {
    font-size      : var(--adns-health-label-size);
    font-weight    : 600;
    letter-spacing : 0.06em;
    text-transform : uppercase;
    color          : var(--color-text-tertiary, #9ca3af);
}

/* --- Badge status (1 mot court) --- */
.adns-tile-badge {
    display         : inline-flex;
    align-items     : center;
    padding         : 1px 6px;
    border-radius   : 4px;
    font-size       : 9px;
    font-weight     : 700;
    letter-spacing  : 0.04em;
    text-transform  : uppercase;
    white-space     : nowrap;
}
.adns-tile-badge-danger  { background: var(--adns-health-danger-bg);  color: var(--adns-health-danger-fg); }
.adns-tile-badge-warn    { background: var(--adns-health-warn-bg);    color: var(--adns-health-warn-fg); }
.adns-tile-badge-success { background: var(--adns-health-success-bg); color: var(--adns-health-success-fg); }
.adns-tile-badge-neutral { background: var(--adns-health-neutral-bg); color: var(--adns-health-neutral-fg); }

/* --- Score XL --- */
.adns-tile-score {
    display     : flex;
    align-items : baseline;
    gap         : 3px;
    margin      : 0 0 3px 0;
    line-height : 1;
}

.adns-tile-score-value {
    font-size   : 24px;
    font-weight : 700;
    line-height : 1;
}

.adns-tile-score-max {
    font-size   : 13px;
    font-weight : 400;
    color       : var(--color-text-tertiary, #9ca3af);
    line-height : 1;
}

/* --- Meta ligne --- */
.adns-tile-meta {
    font-size   : var(--adns-health-meta-size);
    color       : var(--color-text-secondary, #6b7280);
    margin      : 0;
    line-height : 1.3;
}

/* --- Chevron --- */
.adns-tile-chevron {
    font-size   : 12px;
    color       : var(--color-text-tertiary, #9ca3af);
    flex-shrink : 0;
}

/* --- Couleurs par tone --- */
.adns-health-tone-danger  .adns-tile-icon         { background: var(--adns-health-danger-bg);  color: var(--adns-health-danger-fg); }
.adns-health-tone-danger  .adns-tile-score-value  { color: var(--adns-health-danger-fg); }
.adns-health-tone-warn    .adns-tile-icon         { background: var(--adns-health-warn-bg);    color: var(--adns-health-warn-fg); }
.adns-health-tone-warn    .adns-tile-score-value  { color: var(--adns-health-warn-fg); }
.adns-health-tone-success .adns-tile-icon         { background: var(--adns-health-success-bg); color: var(--adns-health-success-fg); }
.adns-health-tone-success .adns-tile-score-value  { color: var(--adns-health-success-fg); }
.adns-health-tone-neutral .adns-tile-icon         { background: var(--adns-health-neutral-bg); color: var(--adns-health-neutral-fg); }
.adns-health-tone-neutral .adns-tile-score-value  { color: var(--color-text-primary, #111827); }

/* =============================================================================
   [2026-06-10] AJOUT - CSS composants AdnsHealthImageDetail
   AdnsVerdictCard, AdnsActionPanel, AdnsCheckList, AdnsItemList
   Ces classes n'existaient pas — la modale s'affichait sans CSS.
   AUTEUR : Antoine LAGIER / Cursor AI - REFERENCE : MADNS-3154
   ============================================================================= */

/* --- AdnsHealthDetail : conteneur racine --- */
.adns-health-detail {
    display        : flex;
    flex-direction : column;
    gap            : 16px;
    padding        : 4px 0;
}

/* ---- AdnsVerdictCard ---- */
.adns-verdict-card {
    display         : flex;
    align-items     : flex-start;
    gap             : 14px;
    padding         : 16px;
    border-radius   : 10px;
    background      : #f9fafb;
    border          : 1px solid rgba(0,0,0,0.07);
}
.adns-verdict-icon {
    width           : 44px;
    height          : 44px;
    border-radius   : 10px;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 20px;
    flex-shrink     : 0;
}
.status-danger  .adns-verdict-icon { background: var(--adns-health-danger-bg);  color: var(--adns-health-danger-fg); }
.status-warn    .adns-verdict-icon { background: var(--adns-health-warn-bg);    color: var(--adns-health-warn-fg); }
.status-success .adns-verdict-icon { background: var(--adns-health-success-bg); color: var(--adns-health-success-fg); }
.status-info    .adns-verdict-icon { background: #e8f4ff;                       color: #1a6bb0; }

.adns-verdict-content {
    flex       : 1;
    min-width  : 0;
}
.adns-verdict-label {
    font-size      : 10px;
    font-weight    : 700;
    letter-spacing : 0.07em;
    text-transform : uppercase;
    color          : #9ca3af;
    margin         : 0 0 4px;
}
.status-danger  .adns-verdict-label { color: var(--adns-health-danger-fg); }
.status-warn    .adns-verdict-label { color: var(--adns-health-warn-fg); }
.status-success .adns-verdict-label { color: var(--adns-health-success-fg); }

.adns-verdict-title {
    font-size   : 15px;
    font-weight : 600;
    color       : #111827;
    margin      : 0 0 4px;
    line-height : 1.3;
}
.adns-verdict-description {
    font-size   : 12px;
    color       : #6b7280;
    margin      : 0;
    line-height : 1.5;
}
.adns-verdict-score {
    display         : flex;
    flex-direction  : column;
    align-items     : center;
    justify-content : center;
    flex-shrink     : 0;
    min-width       : 52px;
}
.adns-verdict-score .score-value {
    font-size   : 26px;
    font-weight : 700;
    line-height : 1;
}
.adns-verdict-score .score-max {
    font-size   : 11px;
    color       : #9ca3af;
}
.status-danger  .adns-verdict-score .score-value { color: var(--adns-health-danger-fg); }
.status-warn    .adns-verdict-score .score-value { color: var(--adns-health-warn-fg); }
.status-success .adns-verdict-score .score-value { color: var(--adns-health-success-fg); }

.adns-verdict-phase-badge {
    display        : inline-flex;
    align-items    : center;
    gap            : 4px;
    margin-top     : 4px;
    margin-bottom  : 6px;
    padding        : 2px 8px;
    border-radius  : 4px;
    font-size      : 11px;
    font-weight    : 600;
    letter-spacing : 0.03em;
    background     : #e8f4ff;
    color          : #1a6bb0;
}

/* ---- AdnsActionPanel ---- */
.adns-action-panel {
    padding       : 14px 16px;
    border-radius : 10px;
    background    : #f0f7ff;
    border        : 1px solid #c7dff7;
}
.adns-action-title {
    font-size      : 11px;
    font-weight    : 700;
    letter-spacing : 0.06em;
    text-transform : uppercase;
    color          : #185fa5;
    margin         : 0 0 10px;
}
.adns-action-list {
    display        : flex;
    flex-direction : column;
    gap            : 6px;
    margin         : 0;
    padding        : 0;
    list-style     : none;
}
.adns-action-item {
    font-size   : 13px;
    color       : #1e3a5f;
    padding     : 4px 0;
    line-height : 1.4;
    display     : flex;
    gap         : 8px;
    align-items : flex-start;
}
.adns-action-item::before {
    content     : "→";
    flex-shrink : 0;
    color       : #185fa5;
    font-weight : 600;
}
.adns-action-gain {
    font-size   : 11px;
    color       : #6b7280;
    margin      : 8px 0 0;
    font-style  : italic;
}
.adns-action-footer {
    margin-top  : 12px;
    padding-top : 10px;
    border-top  : 1px solid #c7dff7;
}
.adns-action-btn-primary {
    font-size   : 12px;
    font-weight : 600;
}

/* ---- AdnsCheckList ---- */
.adns-checklist {
    border        : 1px solid rgba(0,0,0,0.07);
    border-radius : 10px;
    overflow      : hidden;
    background    : #fff;
}
.adns-checklist-title {
    font-size      : 11px;
    font-weight    : 700;
    letter-spacing : 0.06em;
    text-transform : uppercase;
    color          : #9ca3af;
    padding        : 12px 14px 8px;
    margin         : 0;
    border-bottom  : 1px solid rgba(0,0,0,0.06);
    display        : flex;
    align-items    : center;
    gap            : 6px;
}
.adns-checklist-items {
    display        : flex;
    flex-direction : column;
}
.adns-checklist-row {
    display     : flex;
    align-items : center;
    gap         : 10px;
    padding     : 9px 14px;
    border-bottom : 1px solid rgba(0,0,0,0.05);
}
.adns-checklist-row:last-child { border-bottom: none; }
.adns-checklist-icon {
    width           : 20px;
    height          : 20px;
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 10px;
    flex-shrink     : 0;
}
.adns-checklist-row.status-danger  .adns-checklist-icon { background: var(--adns-health-danger-bg);  color: var(--adns-health-danger-fg); }
.adns-checklist-row.status-warn    .adns-checklist-icon { background: var(--adns-health-warn-bg);    color: var(--adns-health-warn-fg); }
.adns-checklist-row.status-success .adns-checklist-icon { background: var(--adns-health-success-bg); color: var(--adns-health-success-fg); }
.adns-checklist-label { flex: 1; color: #111827; font-size: 13px; }
.adns-checklist-value { font-size: 12px; font-weight: 500; color: #6b7280; white-space: nowrap; }
.adns-checklist-row.status-danger  .adns-checklist-value { color: var(--adns-health-danger-fg); }
.adns-checklist-row.status-warn    .adns-checklist-value { color: var(--adns-health-warn-fg); }
.adns-checklist-row.status-success .adns-checklist-value { color: #9ca3af; font-weight: 400; }
.adns-checklist-info {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    width           : 16px;
    height          : 16px;
    margin-left     : 6px;
    color           : #1a6bb0;
    opacity         : 0.7;
    cursor          : help;
    flex-shrink     : 0;
}
.adns-checklist-info:hover { opacity: 1; }

/* ---- AdnsItemList ---- */
.adns-itemlist {
    border        : 1px solid rgba(0,0,0,0.07);
    border-radius : 10px;
    overflow      : hidden;
    background    : #fff;
}
.adns-itemlist-header {
    display        : flex;
    align-items    : center;
    gap            : 8px;
    padding        : 12px 14px 8px;
    border-bottom  : 1px solid rgba(0,0,0,0.06);
}
.adns-itemlist-title {
    font-size      : 11px;
    font-weight    : 700;
    letter-spacing : 0.06em;
    text-transform : uppercase;
    color          : #9ca3af;
    margin         : 0;
    flex           : 1;
}
.adns-itemlist-filter {
    font-size   : 11px;
    color       : #6b7280;
    cursor      : pointer;
    padding     : 2px 6px;
    border-radius : 4px;
    border      : 1px solid #e5e7eb;
    background  : transparent;
    line-height : 1.4;
}
.adns-itemlist-filter:hover { background: #f3f4f6; }
.adns-itemlist-body {
    display        : flex;
    flex-direction : column;
}
.adns-itemlist-row {
    display       : flex;
    align-items   : center;
    gap           : 10px;
    padding       : 8px 14px;
    border-bottom : 1px solid rgba(0,0,0,0.05);
}
.adns-itemlist-row:last-child { border-bottom: none; }
.adns-itemlist-thumb {
    width        : 36px;
    height       : 36px;
    border-radius: 4px;
    object-fit   : cover;
    flex-shrink  : 0;
    background   : #f3f4f6;
}
.adns-itemlist-id {
    font-size  : 10px;
    color      : #9ca3af;
    flex-shrink: 0;
    min-width  : 24px;
    text-align : right;
}
.adns-itemlist-name {
    font-size   : 13px;
    font-weight : 500;
    color       : #111827;
    flex        : 1;
    min-width   : 0;
    overflow    : hidden;
    text-overflow: ellipsis;
    white-space : nowrap;
}
.adns-itemlist-meta {
    font-size  : 11px;
    color      : #9ca3af;
}
.adns-itemlist-data {
    font-size  : 12px;
    color      : #6b7280;
    white-space: nowrap;
}
.adns-itemlist-badge {
    font-size      : 10px;
    font-weight    : 600;
    padding        : 1px 6px;
    border-radius  : 4px;
    white-space    : nowrap;
    text-transform : uppercase;
    letter-spacing : 0.04em;
}
.adns-itemlist-badge.status-danger  { background: var(--adns-health-danger-bg);  color: var(--adns-health-danger-fg); }
.adns-itemlist-badge.status-warn    { background: var(--adns-health-warn-bg);    color: var(--adns-health-warn-fg); }
.adns-itemlist-badge.status-success { background: var(--adns-health-success-bg); color: var(--adns-health-success-fg); }
