/* LudoProd — couche PC « version test » (≥ 768 px). Désactivable dans Paramètres → Affichage → Version PC.
   But : mêmes tuiles, mêmes barres d'outils, mêmes formulaires partout ; l'essentiel visible sans défiler. */

/* ---------- 1. Tuiles de chiffres : un seul gabarit pour toutes les pages ---------- */
main .insights{gap:12px!important;margin:0 0 14px!important;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(280px,1.5fr)!important}
main .insights:not(:has(.ichart)){grid-template-columns:repeat(4,minmax(0,1fr))!important}
main .insights .ichart{grid-column:auto!important;grid-row:auto!important}
main .itile,main .rsk,main .kpis>.kpi,main .cf-kpi{position:relative;min-height:88px!important;height:auto;padding:13px 16px 12px!important;border-radius:14px!important;overflow:hidden}
main .itile .il,main .rsk>span,main .kpis>.kpi>span,main .cf-kpi>span{font-size:.64rem!important;font-weight:600!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--mut)!important;line-height:1.3!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
main .itile .iv,main .rsk b,main .kpis>.kpi>b,main .cf-kpi>b{font-size:1.45rem!important;font-weight:600!important;letter-spacing:-.015em!important;line-height:1.15!important;margin:5px 0 0!important;font-variant-numeric:tabular-nums lining-nums}
main .itile .is,main .kpis>.kpi>small,main .cf-kpi>small{font-size:.74rem!important;margin-top:3px!important;line-height:1.3!important;color:var(--mut)}
main .rsk,main .kpis>.kpi{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:0!important}
main .rsk>span,main .kpis>.kpi>span{order:-1}
main .itile .ispw,main .kpi .ispw{position:absolute!important;left:0;right:0!important;bottom:0;height:26px!important;margin:0!important;opacity:.55;pointer-events:none}
main .kpis,main .rskpis{gap:12px!important;margin:0 0 14px!important}
main .rskpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}

/* ---------- 2. Barres d'outils (recherche, filtres, puces) : même hauteur, même arrondi ---------- */
main form.filters input,main form.filters select,main form.filterbar input,main form.filterbar select,main .hubtabs input,main .hubtabs select,main .taskadd input,main .taskadd select,main .goaladd input,.pil-filters select,.pil-filters input{height:34px!important;min-height:0!important;border-radius:10px!important;font-size:.82rem!important;padding-top:0!important;padding-bottom:0!important}
main form.filters .btn,main form.filterbar .btn,main .hubtabs .btn,main .taskadd .btn,main .goaladd .btn{height:34px!important;min-height:0!important;border-radius:10px!important;padding:0 14px!important;font-size:.82rem!important}
main .chips a,main .chips button,main nav.subtabs:not(.hubtabs) a{height:30px;display:inline-flex;align-items:center;padding:0 12px!important;font-size:.8rem!important;border-radius:999px}
main>.hubtabs{margin-bottom:12px!important;row-gap:8px}

/* ---------- 3. Cartes, titres, tableaux ---------- */
main .card{border-radius:16px}
main .card>h2,main section>h2{font-size:1rem;letter-spacing:.005em}
main table th{font-size:.64rem!important;letter-spacing:.1em!important}
main table.doclist td:first-child,main table.ctrlist td:first-child{white-space:nowrap}
main table.doclist td:first-child a,main table.ctrlist td:first-child a{font-weight:700}
main table tbody tr{transition:background .12s}
main table tbody tr:hover{background:rgba(var(--acc),.05)}

/* ---------- 4. Textes d'aide : une ligne, un clic pour lire la suite ---------- */
.m2clamp{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;font-size:.82rem!important;line-height:1.5!important;cursor:pointer;position:relative;padding-right:92px;margin:0!important}
.m2clamp.open{-webkit-line-clamp:unset;display:block!important}
.m2clamp::after{content:"lire la suite ▾";position:absolute;right:0;top:0;color:var(--accent2);font-size:.76rem;font-weight:600}
.m2clamp.open::after{content:"réduire ▴"}
main .card:has(>.m2clamp:only-child){padding:10px 16px!important;margin-bottom:12px}

/* ---------- 5. Formulaires de saisie rapide : 4 colonnes au lieu de 2 ---------- */
#echform,form.formgrid[action="/promos/nouveau"]{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px 14px!important;align-items:end}
#echform>.full,form.formgrid[action="/promos/nouveau"]>.full{grid-column:span 2}
#echform>.full.btnrow,form.formgrid[action="/promos/nouveau"]>.btnrow,form.formgrid[action="/promos/nouveau"]>p{grid-column:1/-1}

/* ---------- 6. Projets : le kanban tient dans la largeur ; Terrain en grille ---------- */
@media(min-width:1100px){
 .kanban.kfit{overflow-x:hidden}
 .kanban.kfit .kcol{flex:1 1 0!important;min-width:0!important}
 .kanban.kfit .kcol h2{min-width:0}
 .kanban.kfit .kcol h2 .kname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .kanban.kfit .kcard{min-width:0}
 .kanban.kfit .kcard .ktitle{overflow-wrap:anywhere}
}
.terr{max-width:none!important;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start}
.terr>.terr-intro,.terr>p{grid-column:1/-1}

/* ---------- 7. Catalogues longs (formations, logiciels) : deux colonnes ---------- */
@media(min-width:1280px){
 body:has(.soft-h) .card:has(>.soft-h){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;align-items:start}
 body:has(.soft-h) .card:has(>.soft-h)>:not(article):not(.softitem):not(li){grid-column:1/-1}
}

/* ---------- 8. Barre de personnalisation ---------- */
.custbar{position:sticky;top:64px;z-index:20;justify-content:flex-start!important;gap:10px!important;padding:8px 10px 8px 14px!important;border:1px solid rgba(var(--acc),.55)!important;border-radius:14px!important;background:var(--card)!important;box-shadow:0 14px 34px -18px rgba(0,0,0,.6)}
.custbar .custtitle{font-weight:700;font-size:.86rem;white-space:nowrap}
.custbar .custleg{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}
.custbar .custleg i{font-style:normal;font-size:.72rem;color:var(--mut);padding:3px 9px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}
.custbar .custhid{display:flex;gap:5px;flex-wrap:wrap;align-items:center;font-size:.74rem;color:var(--mut)}
.custbar .custhid button{font:inherit;font-size:.72rem;padding:3px 9px;border-radius:999px;border:1px dashed rgba(var(--acc),.6);background:none;color:var(--ink);cursor:pointer}
.custbar .custhid button:hover{background:rgba(var(--acc),.14)}
.custbar .btn{height:32px;min-height:0;white-space:nowrap}
body.cust-on [data-reorder]>[data-id]{outline:1px dashed rgba(var(--acc),.35);outline-offset:3px}
body.cust-on [data-reorder]>[data-id]:hover{outline-color:rgba(var(--acc),.9)}
body.cust-on [data-reorder]>[data-id].is-hidden{opacity:.38}
@media(min-width:1100px){.kanban.kfit{grid-template-columns:repeat(var(--n,6),minmax(0,1fr))!important;gap:8px!important}}
main .insights{align-items:stretch}
main .insights .ichart{min-height:0!important;padding:12px 16px!important}
main .rsk b .amt,main .rsk b span{font:inherit!important;letter-spacing:inherit!important;text-transform:none!important;color:inherit!important;display:inline!important}
main .rsk.wide{min-height:0!important}
main .rsk.wide b{font-size:1.05rem!important}
