/* ASIS-TECH · fix.css — chargé en dernier : menu fixe, champs lisibles, formulaires clairs, squelette de chargement */

/* 1) En-tête : le menu hamburger ne bouge plus (place réservée dès le premier affichage) */
header{flex-wrap:nowrap;color:var(--onp,#fff)}
header b,header small{color:var(--onp,#fff)}
header .logo{flex:none}
header>div:nth-child(2){flex:1 1 auto;min-width:0}
header b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header .hb,header .pav,header .pav+.hb,header .pav:not([hidden])+.hb{margin-left:0!important;flex:none}
header .hb{display:flex}

/* 2) Couleurs : texte toujours lisible sur son fond */
h2,.sheet .top b,.dr .drt b,.pdn,.dh b,.card label,.sheet label,.mo label{color:var(--tx)}
.card label,.sheet label,.mo label{font-weight:600;font-size:13.5px;margin:12px 0 5px}
.b.p,.fab,.m.me,nav button.on{color:var(--onp,#fff)}
.m.me{background:var(--p)}

/* 3) Champs de saisie : fond distinct de la carte, bordure nette, texte foncé, focus visible */
:is(.sheet,.mo,.card,.dr,#vS,#vA) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),textarea,select){
  background:color-mix(in srgb,var(--tx) 5%,var(--card));color:var(--tx);
  border:1.5px solid color-mix(in srgb,var(--tx) 30%,var(--card));border-radius:12px;padding:13px 14px;min-height:48px;
  -webkit-text-fill-color:var(--tx);transition:border-color .15s,box-shadow .15s,background .15s}
:is(.sheet,.mo,.card,.dr,#vS,#vA) textarea{min-height:104px;line-height:1.45}
:is(.sheet,.mo,.card) :is(input,textarea)::placeholder{color:color-mix(in srgb,var(--tx) 55%,var(--card));opacity:1;-webkit-text-fill-color:color-mix(in srgb,var(--tx) 55%,var(--card))}
:is(.sheet,.mo,.card,#vS,#vA) :is(input,textarea,select):focus{border-color:var(--p);background:var(--card);box-shadow:0 0 0 4px color-mix(in srgb,var(--p) 22%,transparent);outline:0}
:is(.sheet,.mo,.card) :is(input,textarea,select)[disabled]{opacity:.6}
.sheet .send input{border-radius:999px}
.qs input{background:transparent!important;min-height:0!important}
input.err,textarea.err,select.err{border-color:var(--bad)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 20%,transparent)!important}
input.ok,textarea.ok{border-color:color-mix(in srgb,#1f9d57 80%,var(--card))!important}
input:-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--tx);box-shadow:0 0 0 1000px color-mix(in srgb,var(--tx) 5%,var(--card)) inset}

/* 4) Formulaires professionnels : * obligatoire, aide, message d'erreur, aperçu du prix, photos */
label.rq::after{content:" *";color:var(--bad);font-weight:800}
.fh{font-size:12.5px;color:var(--mu);margin:5px 2px 0;line-height:1.35}
.fe{display:none;font-size:12.5px;font-weight:700;color:var(--bad);margin:5px 2px 0}
.fe.on{display:block}.fe.on::before{content:"⚠ "}
.fp{font-size:13px;font-weight:800;color:var(--p);margin:6px 2px 0;min-height:0}
.fp.w{color:#b26a00}
.fc{float:right;font-size:12px;color:var(--mu);font-weight:500}
.pvw{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pvw .pt{position:relative;width:78px;height:78px;border-radius:12px;overflow:hidden;border:1.5px solid var(--bd);background:var(--bd)}
.pvw .pt img{width:100%;height:100%;object-fit:cover;display:block}
.pvw .pt b{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.65);color:#fff;border-radius:6px;font-size:11px;padding:1px 6px}
.pvw .pt button{position:absolute;top:3px;right:3px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.7);color:#fff;font-size:15px;line-height:1;cursor:pointer;padding:0}
.pvw .pc{flex:1 0 100%;font-size:12.5px;color:var(--mu)}
.fdb{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:10px 12px;border-radius:12px;font-size:13px;background:color-mix(in srgb,var(--p) 10%,var(--card));border:1px solid color-mix(in srgb,var(--p) 30%,var(--bd));color:var(--tx)}
.fdb button{border:0;background:transparent;color:var(--p);font:inherit;font-weight:800;cursor:pointer;padding:4px 2px;text-decoration:underline}
.sheet .b.p[disabled]{opacity:.65}

/* 5) Chargement : squelette au lieu d'une page vide, cartes hors écran non calculées */
@keyframes skS{to{background-position:-200% 0}}
.prod.sk{pointer-events:none}
.prod.sk .ph,.prod.sk i{background:linear-gradient(100deg,var(--bd) 30%,color-mix(in srgb,var(--bd) 55%,var(--card)) 50%,var(--bd) 70%) 0 0/200% 100%;animation:skS 1.3s linear infinite}
.prod.sk i{display:block;height:12px;border-radius:6px;margin:6px 0}.prod.sk i.s{width:55%}
.prod{content-visibility:auto;contain-intrinsic-size:auto 330px}
.ph,.thumbs span{background-color:var(--bd);background-size:cover;background-position:center}
@media(prefers-reduced-motion:reduce){.prod.sk .ph,.prod.sk i{animation:none}}
