/* Pages Contrats : chargée sur toutes les pages (importmap.php du bundle), n'utilise que les jetons du socle (ui-bundle). */
@layer components {
[data-stamina-turbo-region] .contract-top {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}
[data-stamina-turbo-region] .contract-top__summary { grid-column: span 2; margin: 0 !important; }
@media (max-width: 767.98px) {
    [data-stamina-turbo-region] .contract-top { grid-template-columns: 1fr; }
    [data-stamina-turbo-region] .contract-top__summary { grid-column: auto; }
}
[data-stamina-turbo-region] .contract-top__action { display: flex; }

[data-stamina-turbo-region] .contract-action {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 10px;
    padding: 20px 22px;
    border-radius: var(--radius-card);
    text-decoration: none;
    transition: transform .15s, box-shadow .15s;
}
[data-stamina-turbo-region] .contract-action:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(29, 21, 49, .14); }
[data-stamina-turbo-region] .contract-action--night { background: var(--color-night); color: var(--color-on-night); }
[data-stamina-turbo-region] .contract-action--calm { background: var(--color-surface); color: var(--color-ink); box-shadow: var(--shadow-card); }
[data-stamina-turbo-region] .contract-action__label { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; opacity: .85; }
[data-stamina-turbo-region] .contract-action__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: 15px;
}
[data-stamina-turbo-region] .contract-action--night .contract-action__icon { background: rgba(255, 255, 255, .1); color: #d9ccff; }
[data-stamina-turbo-region] .contract-action--calm .contract-action__icon { background: color-mix(in srgb, var(--color-success) 14%, #fff); color: var(--color-success); }
[data-stamina-turbo-region] .contract-action__value { font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
[data-stamina-turbo-region] .contract-action__value small { margin-left: 6px; font-size: 15px; font-weight: 600; letter-spacing: 0; opacity: .75; }
[data-stamina-turbo-region] .contract-action--calm .contract-action__value { color: var(--color-muted-2); }
[data-stamina-turbo-region] .contract-action__sub { font-size: 12.5px; opacity: .7; }
[data-stamina-turbo-region] .contract-action__go {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 8px;
    height: 34px;
    margin-top: auto;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
}
[data-stamina-turbo-region] .contract-action--night .contract-action__go { background: var(--color-accent); color: #fff; }


[data-stamina-turbo-region] .contract-summary { display: flex; flex-wrap: wrap; gap: 14px; }
[data-stamina-turbo-region] .contract-stat {
    flex: 1 1 160px;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--color-tile);
}
[data-stamina-turbo-region] .contract-stat__value { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--color-ink); line-height: 1.1; }
[data-stamina-turbo-region] .contract-stat__label { margin-top: 4px; font-size: 12px; color: var(--color-muted); }




[data-stamina-turbo-region] .contract-quickfilters { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px 0; }
[data-stamina-turbo-region] .contract-quickfilter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 13px;
    border-radius: 999px;
    background: var(--color-tile);
    color: var(--color-ink-2);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s;
}
[data-stamina-turbo-region] .contract-quickfilter:hover { background: var(--color-field); color: var(--color-ink); }
[data-stamina-turbo-region] .contract-quickfilter.is-active { background: var(--color-accent-soft); color: var(--color-accent); }


[data-stamina-turbo-region] .contract-table__title { display: flex; align-items: center; gap: 12px; min-width: 240px; }
[data-stamina-turbo-region] .contract-table__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--color-accent-soft);
    color: var(--color-accent);
    font-size: 14px;
}
[data-stamina-turbo-region] .contract-table__title strong,
[data-stamina-turbo-region] .contract-table__client strong { display: block; color: var(--color-ink); font-weight: 600; }
[data-stamina-turbo-region] .contract-table__title small,
[data-stamina-turbo-region] .contract-table__client small { display: block; margin-top: 1px; font-size: 11.5px; color: var(--color-muted); }
[data-stamina-turbo-region] .contract-table__client { display: block; min-width: 150px; text-decoration: none; }
[data-stamina-turbo-region] .contract-table__client:hover strong { color: var(--color-accent); }
[data-stamina-turbo-region] .contract-status.badge { padding: 6px 10px; font-size: 12px; }

/* ===== Fiche contrat (Contract/edit) : colonne de repères à gauche, contrat en document à droite ===== */

/* Carte « Contrat » : progression compacte (2 × 2) puis prochaine action. */
[data-stamina-turbo-region] .contract-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
    margin: 16px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--color-line);
    list-style: none;
}
[data-stamina-turbo-region] .contract-steps li { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 12.5px; color: var(--color-muted); }
[data-stamina-turbo-region] .contract-steps li.is-done { color: var(--color-ink-2); }
[data-stamina-turbo-region] .contract-steps li.is-done > span { color: var(--color-success); }
[data-stamina-turbo-region] .contract-steps li.is-current { color: var(--color-ink); font-weight: 700; }
[data-stamina-turbo-region] .contract-steps li.is-current > span { color: var(--color-accent); }

[data-stamina-turbo-region] .contract-next { margin-top: 16px; padding: 16px; border-radius: 14px; background: var(--color-night); color: var(--color-on-night); }
[data-stamina-turbo-region] .contract-next__label { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .65; }
[data-stamina-turbo-region] .contract-next__title { display: block; margin-top: 4px; font-size: 15px; font-weight: 700; line-height: 1.3; }
[data-stamina-turbo-region] .contract-next p { margin: 6px 0 14px; font-size: 12.5px; line-height: 1.5; opacity: .75; }
[data-stamina-turbo-region] .contract-next.is-done { display: flex; align-items: center; gap: 12px; background: var(--color-success-soft); color: var(--color-ink); }
[data-stamina-turbo-region] .contract-next__icon { display: grid; flex: none; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--color-surface); color: var(--color-success); }
[data-stamina-turbo-region] .contract-next__copy { display: grid; min-width: 0; line-height: 1.35; }
[data-stamina-turbo-region] .contract-next__copy strong { font-size: 14px; }
[data-stamina-turbo-region] .contract-next__copy a { overflow: hidden; font-size: 12.5px; color: var(--color-accent); text-overflow: ellipsis; white-space: nowrap; }
[data-stamina-turbo-region] .contract-next__copy small { font-size: 12px; color: var(--color-muted); }

/* Carte « Versions » : tuiles, la version affichée est entourée et porte ses actions. */
[data-stamina-turbo-region] .contract-version.is-current > .page-tile { background: var(--color-surface); box-shadow: inset 0 0 0 2px var(--color-accent); }
[data-stamina-turbo-region] .contract-version > .page-tile > .badge { flex: none; }
[data-stamina-turbo-region] .contract-version__actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 4px 4px; }
[data-stamina-turbo-region] .contract-new {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 10px;
    padding: 9px 12px;
    border: 1px dashed var(--color-line-dashed);
    border-radius: 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
    transition: color .15s, border-color .15s, background-color .15s;
}
[data-stamina-turbo-region] .contract-new:hover { border-color: var(--color-accent); background: var(--color-accent-soft); color: var(--color-accent); }

/* Sommaire : lignes courtes vers les ancres #article-<id> ; inutile sur mobile (le document suit). */
[data-stamina-turbo-region] .contract-toc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; max-height: 24rem; margin: 0; padding: 0; overflow-x: hidden; overflow-y: auto; list-style: none; }
[data-stamina-turbo-region] .contract-toc a { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; color: var(--color-ink-2); font-size: 13px; line-height: 1.35; text-decoration: none; transition: background-color .15s; }
[data-stamina-turbo-region] .contract-toc a:hover { background: var(--color-tile); color: var(--color-ink); }
[data-stamina-turbo-region] .contract-toc__num { display: grid; flex: none; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--color-accent-soft); color: var(--color-accent); font-size: 11px; font-weight: 700; }
[data-stamina-turbo-region] .contract-toc__title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1023.98px) { [data-stamina-turbo-region] .contract-toc-card { display: none; } }

/* Carte « Détails » : deux sections séparées d'un filet. */
[data-stamina-turbo-region] .contract-section + .contract-section { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--color-line); }
[data-stamina-turbo-region] .contract-section.is-disabled { opacity: .6; }
[data-stamina-turbo-region] .contract-section__head { display: flex; align-items: center; gap: 10px; min-height: 32px; margin-bottom: 14px; }
[data-stamina-turbo-region] .contract-section__head h2 { flex: 1 1 auto; margin: 0; font-size: 15px; font-weight: 700; color: var(--color-ink); }
[data-stamina-turbo-region] .contract-section__state { display: grid; flex: none; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--color-tile); color: var(--color-muted); font-size: 11px; }
[data-stamina-turbo-region] .contract-section__state.is-done { background: var(--color-success-soft); color: var(--color-success); }
[data-stamina-turbo-region] .contract-section__state.is-todo { background: var(--color-warning-soft); color: var(--color-warning); }
[data-stamina-turbo-region] .contract-section__hint { font-size: 13px; }

[data-stamina-turbo-region] .contract-facts { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 14px 24px; margin: 0; }
[data-stamina-turbo-region] .contract-facts__title { min-width: 0; }
[data-stamina-turbo-region] .contract-facts dt,
[data-stamina-turbo-region] .contract-party__label { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-muted); }
[data-stamina-turbo-region] .contract-facts dd { margin: 3px 0 0; font-size: 14px; font-weight: 600; color: var(--color-ink); overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
    [data-stamina-turbo-region] .contract-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-stamina-turbo-region] .contract-facts__title { grid-column: 1 / -1; }
}

[data-stamina-turbo-region] .contract-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
@media (max-width: 767.98px) { [data-stamina-turbo-region] .contract-parties { grid-template-columns: 1fr; } }
[data-stamina-turbo-region] .contract-party { display: grid; align-content: start; gap: 2px; padding: 14px 16px; border-radius: 14px; background: var(--color-tile); line-height: 1.45; }
[data-stamina-turbo-region] .contract-party__label { margin-bottom: 4px; }
[data-stamina-turbo-region] .contract-party > strong { font-size: 14px; color: var(--color-ink); }
[data-stamina-turbo-region] .contract-party > small { font-size: 12px; color: var(--color-muted); }
[data-stamina-turbo-region] .contract-party address { display: grid; margin-top: 4px; font-size: 13px; font-style: normal; color: var(--color-ink-2); }

/* Articles : un document, pas des boîtes. Filets fins entre articles, numéro en pastille, sous-articles indentés. */
[data-stamina-turbo-region] .contract-article { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 16px; padding: 22px 0; scroll-margin-top: 80px; }
[data-stamina-turbo-region] .contract-article:first-child { padding-top: 4px; }
[data-stamina-turbo-region] .contract-article:last-child { padding-bottom: 4px; }
[data-stamina-turbo-region] .contract-article + .contract-article { border-top: 1px solid var(--color-line); }
[data-stamina-turbo-region] .contract-article__num { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--color-accent-soft); color: var(--color-accent); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
[data-stamina-turbo-region] .contract-article__main,
[data-stamina-turbo-region] .contract-article__children { grid-column: 2; min-width: 0; }
[data-stamina-turbo-region] .contract-article__head { display: flex; align-items: flex-start; gap: 10px; min-height: 30px; }
[data-stamina-turbo-region] .contract-article__head h3,
[data-stamina-turbo-region] .contract-article__head h4 { flex: 1 1 auto; min-width: 0; margin: 0; color: var(--color-ink); letter-spacing: -.01em; }
[data-stamina-turbo-region] .contract-article__head h3 { padding-top: 3px; font-size: 17px; font-weight: 700; line-height: 1.3; }
[data-stamina-turbo-region] .contract-article__main > .contract-doc { margin-top: 8px; }

[data-stamina-turbo-region] .contract-article__children { display: grid; gap: 18px; margin-top: 12px; }
[data-stamina-turbo-region] .contract-article__children:has(> .contract-sub) { margin-top: 18px; padding-left: 18px; border-left: 2px solid var(--color-tile-2); }
[data-stamina-turbo-region] .contract-sub { scroll-margin-top: 80px; }
[data-stamina-turbo-region] .contract-sub .contract-article__head { align-items: center; min-height: 26px; }
[data-stamina-turbo-region] .contract-sub .contract-article__head h4 { font-size: 15px; font-weight: 700; line-height: 1.3; }
[data-stamina-turbo-region] .contract-sub__num { flex: none; padding: 2px 8px; border-radius: 999px; background: var(--color-tile); color: var(--color-ink-2); font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
[data-stamina-turbo-region] .contract-sub > .contract-doc { margin-top: 6px; }

/* Actions d'édition : petites icônes discrètes, pleines au survol de l'article. */
[data-stamina-turbo-region] .contract-article__actions { display: inline-flex; flex: none; gap: 2px; opacity: .45; transition: opacity .15s; }
[data-stamina-turbo-region] .contract-article__head:hover .contract-article__actions,
[data-stamina-turbo-region] .contract-article__head:focus-within .contract-article__actions { opacity: 1; }
@media (hover: hover) {
    [data-stamina-turbo-region] .contract-article__actions { opacity: 0; }
    [data-stamina-turbo-region] .contract-article__main:hover > .contract-article__head .contract-article__actions,
    [data-stamina-turbo-region] .contract-sub:hover > .contract-article__head .contract-article__actions,
    [data-stamina-turbo-region] .contract-article__head:focus-within .contract-article__actions { opacity: 1; }
}
[data-stamina-turbo-region] .contract-act {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-muted);
    font-size: 12px;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}
[data-stamina-turbo-region] .contract-act:hover { background: var(--color-tile-2); color: var(--color-ink); }
[data-stamina-turbo-region] .contract-act.is-accent:hover { color: var(--color-accent); }
[data-stamina-turbo-region] .contract-act.is-danger:hover { background: var(--color-danger-soft); color: var(--color-danger); }
[data-stamina-turbo-region] .contract-act.is-disabled { opacity: .35; pointer-events: none; }
[data-stamina-turbo-region] .contract-add { display: inline-flex; align-items: center; gap: 7px; justify-self: start; padding: 4px 0; border: 0; background: transparent; color: var(--color-muted); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: color .15s; }
[data-stamina-turbo-region] .contract-add:hover { color: var(--color-accent); }

/* Contenu des articles : HTML riche paramétré, stylé via le conteneur sans toucher au contenu. */
[data-stamina-turbo-region] .contract-doc { font-size: 14px; line-height: 1.6; color: var(--color-ink-2); overflow-wrap: anywhere; }
[data-stamina-turbo-region] .contract-doc > :first-child { margin-top: 0; }
[data-stamina-turbo-region] .contract-doc > :last-child { margin-bottom: 0; }
[data-stamina-turbo-region] .contract-doc p { margin: 0 0 .7em; }
[data-stamina-turbo-region] .contract-doc :is(h1, h2, h3, h4, h5, h6) { margin: 1.3em 0 .35em; font-size: 14.5px; font-weight: 700; line-height: 1.35; color: var(--color-ink); }
[data-stamina-turbo-region] .contract-doc strong, [data-stamina-turbo-region] .contract-doc b { font-weight: 700; color: var(--color-ink); }
[data-stamina-turbo-region] .contract-doc em, [data-stamina-turbo-region] .contract-doc i { font-style: italic; }
[data-stamina-turbo-region] .contract-doc :is(ul, ol) { margin: 0 0 .8em; padding-left: 1.4em; }
[data-stamina-turbo-region] .contract-doc ul { list-style: disc; }
[data-stamina-turbo-region] .contract-doc ol { list-style: decimal; }
[data-stamina-turbo-region] .contract-doc li { margin: .2em 0; padding-left: .2em; }
[data-stamina-turbo-region] .contract-doc li::marker { color: var(--color-muted-2); }
[data-stamina-turbo-region] .contract-doc a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
[data-stamina-turbo-region] .contract-doc blockquote { margin: 0 0 .8em; padding-left: 1em; border-left: 3px solid var(--color-tile-2); color: var(--color-muted); }
[data-stamina-turbo-region] .contract-doc table { width: 100%; margin: 0 0 .8em; border-collapse: collapse; font-size: 13px; }
[data-stamina-turbo-region] .contract-doc :is(th, td) { padding: 6px 10px; border: 1px solid var(--color-line); text-align: left; vertical-align: top; }
[data-stamina-turbo-region] .contract-doc th { background: var(--color-tile); color: var(--color-ink); }
[data-stamina-turbo-region] .contract-doc hr { margin: 1em 0; border: 0; border-top: 1px solid var(--color-line); }

@media (max-width: 575.98px) {
    [data-stamina-turbo-region] .contract-article { grid-template-columns: 26px minmax(0, 1fr); column-gap: 12px; }
    [data-stamina-turbo-region] .contract-article__num { width: 26px; height: 26px; font-size: 12px; }
    [data-stamina-turbo-region] .contract-article__head h3 { font-size: 16px; padding-top: 1px; }
    [data-stamina-turbo-region] .contract-article__children:has(> .contract-sub) { padding-left: 12px; }
}
}
