:root{--noir:#0b1116;--panneau:#111a22;--cyan:#2eb8e6;--cyanf:#1690bd;--gris:#5c6b77;--clair:#f4f7f9;--bordure:rgba(11,17,22,.08);}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Manrope',sans-serif;background:var(--clair);color:var(--noir);min-height:100vh;}
h1,h2,h3{font-family:'Sora',sans-serif;}
/* Login */
.login-wrap{min-height:100vh;background:var(--noir);display:flex;align-items:center;justify-content:center;padding:24px;background-image:radial-gradient(ellipse at 20% 0%,rgba(46,184,230,.13) 0%,transparent 55%);}
.login-card{background:var(--panneau);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:44px 42px;max-width:440px;width:100%;}
.logo-txt{font-family:'Sora',sans-serif;font-weight:700;font-size:26px;color:#fff;letter-spacing:.5px;text-decoration:none;}
.logo-txt span{color:var(--cyan);}
.logo-sub{font-size:10.5px;color:rgba(255,255,255,.45);letter-spacing:2.5px;text-transform:uppercase;margin-top:3px;}
.login-card h1{color:#fff;font-size:22px;margin:8px 0;}
.login-card p.sub{color:rgba(255,255,255,.55);font-size:14px;line-height:1.6;margin-bottom:24px;}
.login-card p.sub strong{color:#fff;}
.steps{display:flex;gap:6px;margin:26px 0;}
.steps i{height:4px;border-radius:4px;flex:1;background:rgba(255,255,255,.12);}
.steps i.on{background:var(--cyan);}
label,.lbl{display:block;font-size:12.5px;font-weight:700;color:var(--gris);letter-spacing:.7px;margin:14px 0 8px;text-transform:uppercase;}
.login-card label{color:rgba(255,255,255,.7);}
.lbl .opt{font-weight:400;text-transform:none;letter-spacing:0;}
.inp{width:100%;background:#fff;border:1px solid var(--bordure);border-radius:12px;padding:14px 16px;color:var(--noir);font-size:15.5px;font-family:'Manrope';}
.login-card .inp{background:#0b1116;border-color:rgba(255,255,255,.14);color:#fff;letter-spacing:1px;font-size:16px;}
.inp:focus{outline:none;border-color:var(--cyan);}
.otp-single{text-align:center;font-family:'Sora';font-size:26px;letter-spacing:14px;}
.hint{font-size:12.5px;color:rgba(255,255,255,.4);margin-top:9px;line-height:1.5;}
.btn{display:inline-block;border:none;cursor:pointer;background:var(--cyan);color:var(--noir);font-family:'Manrope';font-weight:700;font-size:15px;padding:15px 30px;border-radius:100px;width:100%;margin-top:20px;transition:.2s;}
.btn:hover{background:#4cc5ee;}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;width:auto;padding:10px 20px;font-size:13px;margin-top:14px;}
.canal{display:flex;align-items:center;gap:14px;background:#0b1116;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:15px 16px;margin-bottom:12px;cursor:pointer;width:100%;text-align:left;font-family:'Manrope';transition:.15s;}
.canal:hover{border-color:var(--cyan);}
.canal .ic{width:38px;height:38px;border-radius:50%;background:rgba(46,184,230,.12);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.canal .t{color:#fff;font-size:15px;font-weight:600;display:block;}
.canal .s{color:rgba(255,255,255,.45);font-size:12.5px;margin-top:2px;display:block;}
.warn{background:rgba(230,120,40,.12);border-left:4px solid #e69422;color:#e8b072;border-radius:0 10px 10px 0;padding:12px 16px;font-size:13.5px;line-height:1.55;margin-bottom:16px;}
main .warn{color:#7c5510;}
.flash-ok{background:rgba(30,180,110,.12);border-left:4px solid #1eb46e;color:#0e8a55;border-radius:0 10px 10px 0;padding:12px 16px;font-size:13.5px;margin-bottom:16px;}
/* App */
.topbar{background:var(--noir);padding:0 28px;display:flex;align-items:center;justify-content:space-between;height:66px;position:sticky;top:0;z-index:50;}
.topbar .right{display:flex;align-items:center;gap:16px;}
.topbar .logo-txt{font-size:19px;}
.timer{font-size:12.5px;color:rgba(255,255,255,.55);background:rgba(255,255,255,.07);padding:7px 14px;border-radius:100px;}
.timer b{color:var(--cyan);font-family:'Sora';}
.timer.low b{color:#ff7b6b;}
.aide{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;border:none;cursor:pointer;font-weight:700;font-size:15px;}
.logout{color:rgba(255,255,255,.6);font-size:13px;text-decoration:none;border:1px solid rgba(255,255,255,.2);padding:8px 16px;border-radius:100px;}
.nav{background:var(--panneau);padding:0 28px;display:flex;gap:4px;overflow-x:auto;position:sticky;top:66px;z-index:49;}
.nav a{color:rgba(255,255,255,.55);font-weight:600;font-size:14px;padding:16px 18px;text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap;}
.nav a.on{color:#fff;border-bottom-color:var(--cyan);}
.wrap{max-width:1080px;margin:0 auto;padding:34px 24px 70px;}
.kicker{font-size:12px;font-weight:700;color:var(--cyanf);letter-spacing:2px;text-transform:uppercase;}
.wrap h2{font-size:26px;margin:8px 0 22px;}
.wrap h2.h-sub{font-size:19px;margin-top:34px;}
.filtres{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;}
.chip{border:1px solid var(--bordure);background:#fff;border-radius:100px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--gris);}
.chip.on{background:var(--noir);color:#fff;border-color:var(--noir);}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;letter-spacing:.3px;}
.b-perso{background:rgba(46,184,230,.13);color:var(--cyanf);}
.b-sci{background:rgba(155,89,240,.12);color:#7b3fd4;}
.b-ent{background:rgba(240,150,40,.14);color:#b96a0a;}
.b-ok{background:rgba(30,180,110,.13);color:#0e8a55;}
.b-att{background:rgba(240,150,40,.14);color:#b96a0a;}
.b-ret{background:rgba(230,60,60,.12);color:#c22;}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:26px;}
.stat{background:#fff;border:1px solid var(--bordure);border-radius:16px;padding:22px;}
.stat .n{font-family:'Sora';font-weight:700;font-size:26px;}
.stat .l{font-size:13px;color:var(--gris);margin-top:4px;}
table.liste{width:100%;background:#fff;border:1px solid var(--bordure);border-radius:16px;border-collapse:separate;border-spacing:0;overflow:hidden;}
.liste th{font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--gris);text-align:left;padding:14px 18px;background:#fbfcfd;border-bottom:1px solid var(--bordure);}
.liste td{padding:15px 18px;font-size:14px;border-bottom:1px solid var(--bordure);}
.liste tr:last-child td{border-bottom:none;}
.liste .r{text-align:right;}
.dl{color:var(--cyanf);font-weight:700;text-decoration:none;font-size:13px;}
.alerte{background:rgba(240,150,40,.1);border-left:4px solid #e69422;border-radius:0 12px 12px 0;padding:14px 18px;font-size:13.5px;color:#7c5510;margin-bottom:22px;line-height:1.6;}
.prod{background:#fff;border:1px solid var(--bordure);border-radius:16px;padding:22px;display:flex;flex-direction:column;}
.prod .ph{height:100px;border-radius:12px;background:linear-gradient(135deg,#eef3f6,#dde7ec);display:flex;align-items:center;justify-content:center;font-size:34px;margin-bottom:14px;}
.prod h3{font-size:15.5px;margin-bottom:6px;}
.prod p{font-size:13px;color:var(--gris);line-height:1.55;flex:1;}
.prod .prix{font-family:'Sora';font-weight:700;font-size:18px;margin:12px 0 8px;}
.prod .prix small{font-size:12px;color:var(--gris);font-weight:400;}
.qte label{margin:0;font-size:12px;display:flex;align-items:center;gap:10px;}
.qte input{width:74px;background:#fff;border:1px solid var(--bordure);border-radius:10px;padding:9px 10px;font-size:15px;font-family:'Manrope';}
.checkout{background:#fff;border:1px solid var(--bordure);border-radius:16px;padding:26px;margin-bottom:8px;}
.checkout h3{font-size:17px;}
.checkout .btn{width:auto;padding:14px 34px;}
.total-line{font-size:15px;margin:10px 0 4px;}
.total-line b{font-family:'Sora';font-size:19px;}
.radio{display:block;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--noir);background:var(--clair);border-radius:10px;padding:12px 14px;margin-bottom:8px;cursor:pointer;}
.radio .muted{color:var(--gris);font-weight:400;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.grid2 .inp{margin:0;}
#new-addr .inp{margin-top:10px;}
.sel-ent{max-width:340px;margin-bottom:14px;}
.legal-card{background:#fff;border:1px solid var(--bordure);border-radius:16px;padding:26px;margin-bottom:18px;}
.legal-card h3{font-size:17px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.lgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px;}
.lfield{background:var(--clair);border-radius:10px;padding:12px 14px;}
.lfield.wide{grid-column:1/-1;}
.lfield .k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gris);}
.lfield .v{font-size:14.5px;font-weight:600;margin-top:4px;}
.actions{margin-top:20px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.btn2{border:none;cursor:pointer;border-radius:100px;padding:12px 24px;font-family:'Manrope';font-weight:700;font-size:14px;}
.btn2.ok{background:var(--cyan);color:var(--noir);}
.btn2.mod{background:#fff;border:1px solid var(--bordure);color:var(--noir);}
.corr{margin-top:16px;border-top:1px dashed var(--bordure);padding-top:6px;}
.corr .btn{width:auto;padding:12px 26px;}
.note-valid{font-size:12.5px;color:var(--gris);margin-top:12px;line-height:1.6;}
.overlay{position:fixed;inset:0;background:rgba(11,17,22,.72);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;}
.pop{background:#fff;border-radius:22px;max-width:520px;width:100%;padding:38px 36px;}
.pop h2{font-size:22px;margin:6px 0 18px;}
.pop ul{list-style:none;}
.pop li{display:flex;gap:14px;padding:10px 0;font-size:14.5px;color:var(--gris);line-height:1.55;}
.pop li .ic{flex-shrink:0;width:38px;height:38px;border-radius:12px;background:var(--clair);display:flex;align-items:center;justify-content:center;font-size:17px;}
.pop li b{color:var(--noir);}
.pop .btn{margin-top:22px;}
@media(max-width:640px){.wrap{padding:24px 14px 70px;}.topbar{padding:0 14px;}.nav{padding:0 8px;}.grid2{grid-template-columns:1fr;}}

.acts{white-space:nowrap;}
.btn-mini{display:inline-block;background:var(--noir);color:#fff;border:none;border-radius:100px;padding:7px 14px;font-size:12px;font-weight:700;text-decoration:none;cursor:pointer;font-family:'Manrope';margin-left:8px;}
.btn-mini.pay{background:var(--cyan);color:var(--noir);}
textarea.inp{min-height:90px;}

.progress{height:8px;border-radius:100px;background:rgba(11,17,22,.08);margin-top:10px;overflow:hidden;}.progress i{display:block;height:100%;background:linear-gradient(90deg,#2eb8e6,#1690bd);border-radius:100px;}.proj-line{display:block;text-decoration:none;color:var(--noir);}.proj-line:hover{border-color:var(--cyan);}.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 18px;}.subtabs .chip{cursor:pointer;font-family:'Manrope';}

/* Logo image (v0.4.2) */
.logo-lnk{display:flex;align-items:center;text-decoration:none;}
.logo-img{height:40px;width:auto;display:block;}
.logo-img.big{height:64px;margin-bottom:6px;}

/* ---- Login "vitrine" (v0.4.2) ---- */
body.login-page{background:var(--noir);min-height:100vh;}
.login-hero{min-height:100vh;display:flex;align-items:stretch;justify-content:space-between;gap:40px;padding:48px 6vw;position:relative;overflow:hidden;}
.login-hero::before{content:"";position:absolute;inset:0;background:url('/assets/img/login-bg.webp') center/cover no-repeat;z-index:0;}
.login-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(6,10,14,.88) 0%,rgba(6,10,14,.68) 34%,rgba(8,13,18,.28) 62%,rgba(8,13,18,.45) 100%);}
.login-brand,.login-hero .login-card{position:relative;z-index:2;}
.login-brand{display:flex;flex-direction:column;justify-content:space-between;max-width:520px;padding:12px 0;}
.logo-img.hero{height:74px;width:auto;align-self:flex-start;filter:drop-shadow(0 4px 18px rgba(0,0,0,.55));}
.brand-body{margin:40px 0;}
.brand-kicker{font-size:12px;font-weight:700;color:var(--cyan);letter-spacing:3px;text-transform:uppercase;margin-bottom:14px;}
.brand-title{font-family:'Sora';color:#fff;font-size:clamp(26px,3.2vw,40px);line-height:1.22;font-weight:700;text-shadow:0 2px 24px rgba(0,0,0,.5);}
.brand-title span{color:var(--cyan);}
.brand-points{list-style:none;margin-top:28px;}
.brand-points li{display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.82);font-size:15px;font-weight:500;padding:9px 0;text-shadow:0 1px 12px rgba(0,0,0,.6);}
.pt-ic{width:38px;height:38px;flex-shrink:0;border-radius:12px;background:rgba(46,184,230,.16);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;font-size:17px;border:1px solid rgba(46,184,230,.25);}
.brand-secu{font-size:12.5px;color:rgba(255,255,255,.55);line-height:1.6;max-width:420px;text-shadow:0 1px 10px rgba(0,0,0,.6);}
.login-hero .login-card{align-self:center;flex-shrink:0;}
.login-card.glass{background:rgba(13,20,27,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px rgba(0,0,0,.5);}
.login-card.glass .steps{margin-top:4px;}
@media(max-width:900px){
  .login-hero{flex-direction:column;justify-content:flex-start;gap:26px;padding:34px 22px;}
  .login-brand{max-width:none;}
  .logo-img.hero{height:56px;}
  .brand-body{margin:22px 0 0;}
  .brand-points,.brand-secu{display:none;}
  .login-hero .login-card{align-self:stretch;max-width:none;}
}

/* ---- Passe premium interieur (v0.4.3) ---- */
body{background:linear-gradient(180deg,#eef3f7 0%,#f4f7f9 260px);}
.topbar{background:linear-gradient(180deg,#0d151c,#0b1116);box-shadow:0 1px 0 rgba(46,184,230,.18),0 8px 28px rgba(11,17,22,.28);}
.nav{box-shadow:0 10px 24px rgba(11,17,22,.10);}
.nav a{transition:color .15s;}
.nav a:hover{color:#fff;}
.wrap h2{letter-spacing:-.3px;}
.stat{border-radius:18px;box-shadow:0 12px 30px rgba(11,17,22,.05);border-color:rgba(11,17,22,.05);position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s;}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--cyan),var(--cyanf));border-radius:0 4px 4px 0;}
.stat:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(11,17,22,.10);}
.stat .n{font-size:30px;}
table.liste{border-radius:18px;box-shadow:0 12px 30px rgba(11,17,22,.05);border-color:rgba(11,17,22,.05);}
.liste tbody tr,.liste tr{transition:background .12s;}
.liste tr:hover td{background:#f2f9fc;}
.legal-card,.prod,.checkout{border-radius:18px;box-shadow:0 12px 30px rgba(11,17,22,.05);border-color:rgba(11,17,22,.05);}
.prod{transition:transform .18s,box-shadow .18s;}
.prod:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(11,17,22,.10);}
.btn,.btn2.ok{background:linear-gradient(120deg,#39c2ef,#1690bd);color:#fff;box-shadow:0 8px 22px rgba(22,144,189,.35);transition:transform .15s,box-shadow .15s,filter .15s;}
.btn:hover,.btn2.ok:hover{background:linear-gradient(120deg,#45cbf6,#1a9dcd);transform:translateY(-1px);box-shadow:0 12px 28px rgba(22,144,189,.45);}
.login-card .btn{color:#06222e;}
.btn-mini{transition:transform .12s,box-shadow .12s;}
.btn-mini:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(11,17,22,.25);}
.chip.on{background:linear-gradient(120deg,#15222c,#0b1116);box-shadow:0 6px 16px rgba(11,17,22,.25);}
.chip{transition:border-color .15s,color .15s;}
.chip:hover{border-color:var(--cyanf);color:var(--cyanf);}
.dl:hover{text-decoration:underline;}
.progress i{box-shadow:0 0 10px rgba(46,184,230,.5);}
.pop{border-radius:24px;box-shadow:0 40px 100px rgba(0,0,0,.45);}
.alerte,.warn,.flash-ok{border-radius:0 14px 14px 0;}
.timer{border:1px solid rgba(46,184,230,.22);}

/* ---- Responsive mobile complet (v0.4.4) ---- */
@media(max-width:820px){
  html,body{overflow-x:hidden;}
  /* Tableaux : defilement horizontal dans la page, sans casser la largeur */
  table.liste{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
  .liste th,.liste td{white-space:nowrap;}
  .liste th{padding:12px 14px;}
  .liste td{padding:13px 14px;}
}
@media(max-width:640px){
  /* Bandeau compact */
  .topbar{height:58px;padding:0 12px;gap:8px;}
  .topbar .right{gap:8px;}
  .logo-img{height:30px;}
  .timer{font-size:0;padding:6px 10px;}          /* masque "Session :" */
  .timer b{font-size:13px;}
  .aide{width:30px;height:30px;font-size:13px;}
  .logout{font-size:12px;padding:7px 12px;}
  .nav{top:58px;padding:0 6px;}
  .nav a{padding:14px 13px;font-size:13.5px;}
  /* Contenu */
  .wrap{padding:22px 14px 60px;}
  .wrap h2{font-size:22px;}
  .cards{grid-template-columns:1fr;gap:12px;}
  .stat{padding:18px;}
  .filtres{gap:6px;}
  .chip{padding:7px 13px;font-size:12.5px;}
  .checkout{padding:20px 16px;}
  .checkout .btn{width:100%;}
  .legal-card{padding:20px 16px;}
  .actions{flex-direction:column;align-items:stretch;}
  .actions .btn2{width:100%;}
  .btn2{padding:13px 20px;}
  .acts{white-space:normal;}
  .acts .btn-mini{margin:6px 6px 0 0;display:inline-block;}
  .pop{padding:28px 22px;}
  .subtabs{gap:6px;}
  /* Login vitrine */
  .login-hero{padding:26px 16px 34px;gap:20px;}
  .logo-img.hero{height:48px;}
  .brand-title{font-size:24px;}
  .login-card{padding:30px 22px;}
  .otp-single{font-size:22px;letter-spacing:10px;}
}

/* ---- Boutique + tuiles entites (v0.5.0) ---- */
.ent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:8px;}
.ent-tile{background:#fff;border:1px solid rgba(11,17,22,.05);border-radius:18px;padding:22px;box-shadow:0 12px 30px rgba(11,17,22,.05);position:relative;overflow:hidden;}
.ent-tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;}
.ent-perso::before{background:linear-gradient(180deg,#2eb8e6,#1690bd);}
.ent-sci::before{background:linear-gradient(180deg,#9b59f0,#7b3fd4);}
.ent-ent::before{background:linear-gradient(180deg,#f09628,#b96a0a);}
.ent-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.ent-name{font-family:'Sora';font-weight:700;font-size:16.5px;}
.ent-rows{display:flex;flex-direction:column;gap:7px;}
.ent-row{display:flex;gap:12px;font-size:13.5px;align-items:baseline;}
.ent-row .k{flex:0 0 108px;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--gris);font-weight:700;}
.ent-row .v{color:var(--noir);}
.ent-link{display:inline-block;margin-top:14px;font-size:12.5px;}
/* Boutique */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-bottom:26px;}
.shop-card .ph{height:150px;font-size:40px;position:relative;overflow:hidden;}
.shop-card .ph.has-img{background:none;padding:0;}
.shop-card .ph img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block;}
.shop-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;flex-wrap:wrap;}
.shop-foot .prix{margin:0;}
.stepper{display:flex;align-items:center;border:1px solid var(--bordure);border-radius:100px;overflow:hidden;background:#fff;}
.stepper input{width:44px;border:none;text-align:center;font-family:'Sora';font-weight:700;font-size:15px;padding:8px 0;-moz-appearance:textfield;}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.st-btn{width:36px;height:36px;border:none;background:var(--clair);font-size:18px;font-weight:700;cursor:pointer;color:var(--noir);transition:background .12s;}
.st-btn:hover{background:var(--cyan);color:#fff;}
/* Panier */
.panier{background:var(--clair);border-radius:14px;padding:16px 18px;margin:12px 0 6px;}
.panier-vide{font-size:13.5px;color:var(--gris);padding:4px 0;}
.panier-ligne{display:flex;justify-content:space-between;gap:14px;font-size:14px;padding:7px 0;border-bottom:1px dashed rgba(11,17,22,.1);}
.panier-ligne.fdg{color:var(--gris);}
.panier-ligne.fdg .muted{font-size:12px;}
.panier-ligne.fdg.inactif{opacity:.5;}
.panier-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:15px;}
.panier-total b{font-family:'Sora';font-size:21px;}
@media(max-width:640px){
  .shop-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .shop-card .ph{height:110px;}
  .shop-foot{flex-direction:column;align-items:stretch;}
  .stepper{justify-content:space-between;}
  .stepper input{flex:1;}
  .ent-row .k{flex-basis:92px;}
}

/* HT / TTC (v0.5.2) */
.prix-ht{display:block;font-family:'Manrope';font-size:12px;color:var(--gris);font-weight:500;margin-top:2px;}
.panier-subtotal{display:flex;justify-content:space-between;padding-top:10px;font-size:13px;color:var(--gris);}
.panier-ligne.fdg small{font-weight:400;}
.inp-file{padding:11px 14px;}
.b-info{background:rgba(92,107,119,.14);color:#5c6b77;}

/* ---- Photos projet + visionneuse + commentaires (v0.7) ---- */
.ph-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;background:#fff;border:1px solid rgba(11,17,22,.05);border-radius:14px;padding:12px 16px;box-shadow:0 8px 22px rgba(11,17,22,.05);}
.ph-selall{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;cursor:pointer;margin:0;text-transform:none;letter-spacing:0;color:var(--noir);}
.ph-bar .btn-mini{margin-left:0;}
.ph-bar .btn-mini:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none;}
.ph-zone{font-size:16px;margin:22px 0 12px;}
.ph-zone .muted{color:var(--gris);font-weight:400;font-size:13px;}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.ph-card{position:relative;border-radius:14px;overflow:hidden;background:#dde7ec;aspect-ratio:4/3;cursor:zoom-in;box-shadow:0 8px 22px rgba(11,17,22,.06);transition:transform .15s,box-shadow .15s;}
.ph-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,17,22,.12);}
.ph-card img{width:100%;height:100%;object-fit:cover;display:block;}
.ph-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:34px;}
.ph-check{position:absolute;top:8px;left:8px;background:rgba(255,255,255,.92);border-radius:8px;padding:6px;line-height:0;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.ph-check input{width:16px;height:16px;cursor:pointer;accent-color:var(--cyanf);}
.ph-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(11,17,22,.82));color:#fff;font-size:11.5px;padding:16px 10px 8px;line-height:1.35;}
/* Visionneuse */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(8,12,17,.93);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;}
.lightbox figure{max-width:92vw;max-height:92vh;margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;}
.lightbox img{max-width:92vw;max-height:84vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);}
.lightbox figcaption{color:rgba(255,255,255,.8);font-size:13.5px;text-align:center;}
.lb-close{position:absolute;top:18px;right:22px;background:rgba(255,255,255,.1);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:17px;cursor:pointer;}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);color:#fff;border:none;width:48px;height:48px;border-radius:50%;font-size:26px;cursor:pointer;transition:background .15s;}
.lb-nav:hover,.lb-close:hover{background:rgba(46,184,230,.4);}
.lb-prev{left:18px;}
.lb-next{right:18px;}
/* Commentaires */
.com-fil{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.com{max-width:78%;border-radius:14px;padding:11px 15px;font-size:14px;line-height:1.55;}
.com-client{align-self:flex-end;background:rgba(46,184,230,.12);border:1px solid rgba(46,184,230,.2);}
.com-adel{align-self:flex-start;background:var(--clair);border:1px solid rgba(11,17,22,.05);}
.com-meta{font-size:11.5px;color:var(--gris);margin-bottom:4px;}
@media(max-width:640px){
  .ph-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .ph-bar{gap:10px;padding:10px 12px;}
  .com{max-width:92%;}
  .lb-nav{width:40px;height:40px;font-size:22px;}
}

/* ---- Sites : parc installe + acces support (v0.9.0) ---- */
a.site-tile{display:block;text-decoration:none;color:var(--noir);transition:transform .18s,box-shadow .18s;}
a.site-tile:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(11,17,22,.10);}
.site-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.code-chip{display:inline-block;font-family:'Sora';font-weight:700;font-size:13px;letter-spacing:1.5px;background:rgba(46,184,230,.13);color:var(--cyanf);border:1px dashed rgba(22,144,189,.45);border-radius:8px;padding:4px 10px;}
.code-chip.big{font-size:18px;letter-spacing:2.5px;padding:8px 16px;}
.code-banner{background:#fff;border:1px solid rgba(11,17,22,.05);border-radius:18px;box-shadow:0 12px 30px rgba(11,17,22,.05);padding:20px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:8px;}
.code-banner .k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gris);font-weight:700;margin-bottom:6px;}
.code-banner p{flex:1;min-width:220px;font-size:13.5px;color:var(--gris);line-height:1.6;margin:0;}
.equip-child{padding-left:42px !important;}
.equip-arrow{color:var(--cyanf);font-weight:700;margin-right:2px;}
.sup-badge{border:1px solid rgba(240,150,40,.5);}
@media(max-width:640px){
  .code-banner{padding:16px;gap:12px;}
  .code-chip.big{font-size:16px;letter-spacing:2px;}
}
