/*
 * Les fiches à rail : la colonne d'onglets à gauche d'une fiche
 * (App\Filament\Support\RecordRail), et Supprimer au pied de la fiche (plus bas). Filament n'a aucune notion de groupe dans des
 * onglets verticaux : le titre d'un bloc (« Fiche », « Production », « Suivi ») est
 * peint ici, en ::before du PREMIER onglet du bloc, qui porte data-smoon-block. Pas
 * de ciblage par rang : un onglet peut être masqué pour une fiche, le rang changerait.
 * Publiée comme densite.css par filament:assets (public/css/app/).
 */
/*
 * 192 px, partout (Maxime, 05/10 : 216 → 192, 24 px de plus au tableau d'un onglet de relation).
 * Un libellé long passe sur deux lignes plutôt que d'élargir le rail : Filament les tient sur une
 * (white-space: nowrap), et « Chaînes de production » portait le rail du façonnier à 228 px.
 */
.fi-tabs.fi-vertical {
    width: 12rem;
    min-width: 12rem;
}

.fi-tabs.fi-vertical .fi-tabs-item {
    white-space: normal;
    text-align: start;
}

.fi-tabs.fi-vertical .fi-tabs-item > .fi-icon {
    flex-shrink: 0;
}

.fi-tabs.fi-vertical .fi-tabs-item[data-smoon-block] {
    position: relative;
    margin-top: 1.75rem;
}

.fi-tabs.fi-vertical .fi-tabs-item[data-smoon-block]:first-child {
    margin-top: 1.15rem;
}

.fi-tabs.fi-vertical .fi-tabs-item[data-smoon-block]::before {
    content: attr(data-smoon-block);
    position: absolute;
    top: -1.15rem;
    inset-inline-start: 0.75rem;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gray-500);
    white-space: nowrap;
    pointer-events: none;
}

/*
 * Supprimer, au bout de la barre d'Enregistrer d'une fiche (HasRecordRail::getFormActions) :
 * écarté d'Enregistrer, pour qu'un clic hâtif ne l'atteigne pas.
 */
.fi-ac .smoon-form-delete {
    margin-inline-start: auto;
}

/*
 * La barre Enregistrer · Annuler (· Supprimer) de TOUTE page à formulaire — fiches, comptes, profils,
 * page Profil : au bas de la page, dans une carte comme l'encart et le rail, jamais collée au bas de
 * l'écran (Maxime, 05/10). Filament lui donne la clé « form-actions », que l'identifiant rendu préfixe
 * du schéma de la page (« content.form-actions ») : on vise la fin de l'identifiant.
 */
.fi-sc-actions[id$="form-actions"] {
    border-radius: var(--radius-xl);
    background-color: var(--color-white);
    padding: calc(var(--spacing) * 4) calc(var(--spacing) * 6);
    box-shadow: 0 1px 2px 0 #0000000d, 0 0 0 1px color-mix(in oklab, var(--gray-950) 5%, transparent);
}

.dark .fi-sc-actions[id$="form-actions"] {
    background-color: var(--gray-900);
    box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-white) 10%, transparent);
}

/*
 * Un onglet qui porte un tableau (gestionnaire de relation) : le tableau prend tout le panneau.
 * Filament décale le panneau d'un onglet vertical (marge 24 px) et le rembourre (24 px de chaque
 * côté), puis le tableau pose sa propre carte : deux cadres, ~72 px de large perdus — de quoi
 * couper la dernière colonne d'un tableau, même menu replié (mesuré le 03/10 : 1 073 px de tableau
 * pour 1 116 utiles). Le trait du rail suffit à séparer le tableau des onglets.
 */
.fi-sc-tabs.fi-vertical .fi-sc-tabs-tab.fi-active:has(.fi-ta-ctn) {
    margin-inline-start: 0;
    padding: 0;
}

.fi-sc-tabs.fi-vertical .fi-sc-tabs-tab.fi-active .fi-ta-ctn {
    border-radius: 0;
    box-shadow: none;
}

/*
 * Le tableau des lignes d'une nomenclature, dans son onglet (fiche de la nomenclature, onglet
 * « Nomenclature » d'un produit) : deux colonnes dont le CONTENU élargissait le tableau au-delà du
 * cadre, même menu replié — mesuré le 09/10 à 1 440 px de large sur 80 fiches tirées au sort : 24
 * débordaient encore, de 2 à 117 px, une fois « Du » et « Au » masquées.
 * La désignation : un mot sans espace (« CULOTTE/SHORT/LEGGING/CYCLISTE ») ne se coupait pas et
 * portait la colonne à 281 px ; il se coupe où il faut, la colonne gardant 160 px au moins.
 * L'avertissement : la pastille « Deux matières au même emplacement », qu'un thème tient sur une
 * ligne, portait la colonne à 257 px ; elle passe sur plusieurs lignes. Les 80 fiches tiennent.
 * « Composant en double » s'y range dessous (`listWithLineBreaks`) : les 17 fiches qui le portent
 * tiennent aussi, colonne à 135 px, pastilles entières (mesuré le 09/10, menu replié).
 * Les sélecteurs sont les classes que Filament tire du NOM des colonnes (BillOfMaterialLinesTable).
 */
.fi-sc-tabs.fi-vertical td.fi-ta-cell-designation .fi-ta-text {
    min-width: 10rem;
    overflow-wrap: anywhere;
}

.fi-sc-tabs.fi-vertical td.fi-ta-cell-conflict .fi-ta-text {
    max-width: 8.5rem;
}

.fi-sc-tabs.fi-vertical td.fi-ta-cell-conflict .fi-badge {
    text-align: start;
    white-space: normal;
}
