/* Charte du site elphicom.com : blanc dominant, orange #EF8000 en accent, gris.
   Titres Plus Jakarta Sans, texte Poppins. */
:root{
  --orange:#EF8000; --orange-hover:#D97300; --orange-pale:#FFF3E6;
  --ink:#1D1F23; --gris:#5C6470; --gris-2:#9CA3AF; --ligne:#E9EBEF; --fond:#F7F8FA; --blanc:#FFFFFF;
  --radius:14px; --shadow-sm:0 2px 8px rgba(29,31,35,.06); --shadow:0 14px 40px rgba(29,31,35,.10);
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{height:100%;overflow:hidden;background:var(--blanc);color:var(--ink);font-family:Poppins,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:'Plus Jakarta Sans',-apple-system,sans-serif;line-height:1.15;letter-spacing:-.015em}
.screen{position:fixed;inset:0;display:none}
.screen.on{display:block}
.kicker{display:block;font:700 12px 'Plus Jakarta Sans';letter-spacing:2px;text-transform:uppercase;color:var(--orange)}

/* halo orange pâle, comme le hero du site */
.halo{position:absolute;top:-220px;right:-180px;width:640px;height:640px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,var(--orange-pale) 0%,rgba(255,243,230,0) 68%)}
.halo.b{top:auto;right:auto;bottom:-260px;left:-220px}

/* ---------- Splash ---------- */
#splash{display:none;place-items:center;background:var(--blanc);z-index:50;overflow:hidden}
#splash.on{display:grid}
#splash .halo{animation:haloIn 1.6s var(--ease) both}
.brand{position:relative;display:flex;align-items:flex-end;height:78px}
.brand .e{height:78px;opacity:0;transform:scale(.3) rotate(-25deg);animation:pop .9s var(--spring) .2s forwards}
.brand .rest{height:78px;clip-path:inset(0 100% 0 0);animation:wipe 1s var(--ease) .85s forwards}
.brand .ring{position:absolute;left:0;top:50%;width:78px;height:78px;margin-top:-39px;border-radius:50%;border:2px solid var(--orange);opacity:0;animation:ring 1.6s var(--ease) .6s 2}
#splash .line{width:0;height:3px;border-radius:3px;background:var(--orange);margin:26px auto 0;animation:grow .8s var(--ease) 1.6s forwards}
#splash .tag{margin-top:16px;text-align:center;opacity:0;animation:fade .8s ease 1.8s forwards}
#splash.out{animation:splashOut .7s var(--ease) forwards}
@keyframes pop{to{opacity:1;transform:none}}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes ring{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(2.4)}}
@keyframes grow{to{width:64px}}
@keyframes fade{to{opacity:1}}
@keyframes haloIn{from{opacity:0;transform:scale(.6)}}
@keyframes splashOut{to{opacity:0;transform:scale(1.04)}}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ---------- Connexion ---------- */
#login{display:none;place-items:center;background:var(--fond);overflow:hidden}
#login.on{display:grid}
.login-card{position:relative;width:min(460px,92vw);text-align:center;background:var(--blanc);border:1px solid var(--ligne);border-radius:22px;padding:40px 30px 30px;box-shadow:var(--shadow);animation:rise .8s var(--ease) both}
.login-card .logo{height:38px;margin:0 auto 22px;display:block}
.login-card h1{font-size:24px;font-weight:800;margin:8px 0 26px}
.profiles{display:flex;justify-content:center;gap:22px;margin-bottom:26px}
.prof{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--gris);transition:.35s var(--ease)}
.prof .av{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;font:700 22px 'Plus Jakarta Sans';background:var(--fond);border:1.5px solid var(--ligne);color:var(--gris);transition:.35s var(--ease)}
.prof span{font-size:13px;font-weight:500}
.prof.sel{color:var(--ink)}
.prof.sel .av{background:var(--orange);border-color:var(--orange);color:#fff;transform:scale(1.08);box-shadow:0 10px 26px rgba(239,128,0,.35)}
.dots{display:flex;justify-content:center;gap:16px;margin:4px 0 24px}
.dots i{width:14px;height:14px;border-radius:50%;border:2px solid #D4D8DE;transition:.25s var(--spring)}
.dots i.f{background:var(--orange);border-color:var(--orange);transform:scale(1.15)}
.dots.shake{animation:shake .45s}
@keyframes shake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.pad{display:grid;grid-template-columns:repeat(3,74px);gap:12px 24px;justify-content:center}
.pad button{width:74px;height:74px;border-radius:50%;background:var(--fond);border:1px solid var(--ligne);font:600 26px 'Plus Jakarta Sans';color:var(--ink);transition:background .15s,transform .15s,color .15s}
.pad button:active{background:var(--orange);color:#fff;transform:scale(.94)}
.pad button.ghost{background:none;border:0;font-size:20px;color:var(--gris-2)}
.hint{margin-top:22px;font-size:12px;color:var(--gris-2)}
.hint b{color:var(--ink)}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;padding:7px 13px;border-radius:99px;background:var(--fond);border:1px solid var(--ligne);color:var(--gris)}
.pill i{width:8px;height:8px;border-radius:50%;background:#22A861;box-shadow:0 0 0 4px rgba(34,168,97,.15)}

/* ---------- Accueil ---------- */
#home{overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--blanc)}
#home .halo{position:absolute;top:-400px}
.wrap{position:relative;max-width:1180px;margin:0 auto;padding:0 28px 70px}
header.top{position:sticky;top:0;z-index:6;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--ligne)}
header.top .in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:calc(14px + env(safe-area-inset-top)) 28px 14px}
header.top .logo{height:30px}
header.top .sp{flex:1}
.av-s{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font:700 14px 'Plus Jakarta Sans'}
.iconbtn{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;border:1.5px solid #D4D8DE;color:var(--ink);transition:.2s}
.iconbtn:active{transform:scale(.92);border-color:var(--ink)}
.hello{padding:40px 0 6px}
.hello .kicker{margin-bottom:12px;animation:rise .7s var(--ease) both}
.hello h1{font-size:clamp(30px,4vw,44px);font-weight:800;animation:rise .8s var(--ease) .05s both}
.hello h1 em{font-style:normal;color:var(--orange)}
.hello .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px;animation:rise .8s var(--ease) .12s both}
.toggle{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;padding:5px 14px 5px 5px;border-radius:99px;border:1px solid var(--ligne);background:var(--blanc)}
.toggle .sw{width:40px;height:24px;border-radius:99px;background:#D4D8DE;position:relative;transition:.3s}
.toggle .sw:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.3s var(--spring)}
.toggle.on{border-color:var(--orange);color:var(--orange)}
.toggle.on .sw{background:var(--orange)}
.toggle.on .sw:after{transform:translateX(16px)}

.chips{position:sticky;top:calc(71px + env(safe-area-inset-top));z-index:5;overflow-x:auto;padding:16px 0;margin-top:14px;background:linear-gradient(180deg,#fff 80%,rgba(255,255,255,0));scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips .inner{position:relative;display:flex;gap:8px;z-index:0;width:max-content}
.chip{position:relative;flex:none;padding:10px 18px;border-radius:9px;border:1.5px solid var(--ligne);font:600 14px 'Plus Jakarta Sans';color:var(--gris);transition:color .3s,border-color .3s;animation:rise .6s var(--ease) both}
.chip.on{color:#fff;border-color:transparent}
.chip-ind{position:absolute;top:0;left:0;height:100%;border-radius:9px;background:var(--orange);transition:transform .45s var(--ease),width .45s var(--ease);z-index:-1;box-shadow:0 8px 20px rgba(239,128,0,.3)}

section.prod{margin-top:34px;padding-top:30px;border-top:1px solid var(--ligne)}
section.prod:first-of-type{border-top:0;padding-top:6px}
.prod-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.prod-ico{flex:none;width:64px;height:64px;border-radius:14px;background:var(--orange-pale);display:grid;place-items:center;overflow:hidden}
.prod-ico img{width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}
.prod-ico svg{width:26px;height:26px;stroke:var(--orange)}
.prod-head h2{font-size:24px;font-weight:800}
.prod-head p{font-size:14px;color:var(--gris);margin-top:2px}
.prod-head .n{margin-left:auto;font-size:12.5px;color:var(--gris-2);white-space:nowrap}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}
.card{text-align:left;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--radius);padding:14px 14px 16px;opacity:0;transform:translateY(26px) scale(.97);transition:transform .7s var(--ease),opacity .7s var(--ease),box-shadow .25s}
.card.in{opacity:1;transform:none}
.card .paper{position:relative;aspect-ratio:3/4.1;border-radius:8px;overflow:hidden;background:var(--fond);border:1px solid var(--ligne);transition:transform .35s var(--ease)}
.card .paper img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.card:active{transform:scale(.97)}
@media (hover:hover){.card.in:hover{box-shadow:var(--shadow);transform:translateY(-4px)}}
.card .meta{margin-top:14px}
.card .meta b{display:block;font:700 15px 'Plus Jakarta Sans';line-height:1.3}
.card .meta span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--gris);margin-top:4px}
.card .meta span:after{content:"→";margin-left:auto;color:var(--orange);font-weight:600;transition:transform .25s}
@media (hover:hover){.card:hover .meta span:after{transform:translateX(4px)}}
.badge{position:absolute;top:8px;left:8px;z-index:2;font:700 10px 'Plus Jakarta Sans';letter-spacing:1.2px;text-transform:uppercase;padding:5px 9px;border-radius:6px;background:var(--ink);color:#fff}
.badge.t{background:var(--orange)}
.card.hide,section.prod.hide{display:none}

/* ---------- Lecteur (fond sombre = couleur ink du bandeau du site) ---------- */
#viewer{background:var(--ink);z-index:20;opacity:0;transition:opacity .35s;color:#fff}
#viewer.show{opacity:1}
/* pages empilées : seule la page courante est visible ; pendant un tournage, la suivante apparaît dessous */
.track{position:absolute;inset:0;touch-action:none}
.slide{position:absolute;inset:0;visibility:hidden;perspective:2200px;display:flex;align-items:center;justify-content:center;padding:calc(76px + env(safe-area-inset-top)) 90px calc(128px + env(safe-area-inset-bottom));overflow:hidden;transition:padding .35s var(--ease)}
#viewer.bare .slide{padding:14px}
#viewer.single .slide{padding-bottom:calc(40px + env(safe-area-inset-bottom))}
.slide img{-webkit-user-drag:none;-webkit-touch-callout:none;display:block;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5);transition:transform .35s var(--ease);background:#fff}
.slide img.zoom{transform:scale(2)}
.slide.cur{visibility:visible;z-index:2}
.slide.under{visibility:visible;z-index:1}
/* la feuille qui tourne pivote autour de sa reliure (bord gauche), comme un magazine */
/* pli de la feuille : ombre projetée sur la page du dessous + verso (reflet de la partie repliée) */
.pli{position:absolute;z-index:2;pointer-events:none}
.pli>div{position:absolute;inset:0;overflow:visible}
.pli-ombre{overflow:hidden!important}
.pli-ombre i,.pli-dos i{position:absolute;display:block;transform-origin:0 50%}
.pli-ombre i{background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.12) 45%,rgba(0,0,0,0))}
.pli-rabat{transform-origin:0 0;filter:drop-shadow(-4px 2px 10px rgba(0,0,0,.35))}
.pli-dos{position:absolute;inset:0;background:linear-gradient(135deg,#f7f6f2,#e9e7e1);overflow:hidden;border-radius:4px}
.pli-dos i{background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(255,255,255,.55) 40%,rgba(255,255,255,0) 75%,rgba(0,0,0,.08))}
.vbar{position:absolute;left:0;right:0;display:flex;align-items:center;gap:14px;padding:0 22px;transition:opacity .35s,transform .35s var(--ease);z-index:3}
.vbar.topb{top:0;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:30px;background:linear-gradient(180deg,rgba(29,31,35,.92),transparent)}
.vbar.botb{bottom:0;padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-top:40px;flex-direction:column;background:linear-gradient(0deg,rgba(29,31,35,.95),transparent)}
#viewer.bare .topb{opacity:0;transform:translateY(-20px);pointer-events:none}
#viewer.bare .botb{opacity:0;transform:translateY(20px);pointer-events:none}
#viewer .iconbtn{border-color:rgba(255,255,255,.25);color:#fff}
.vbar .ttl{flex:1;min-width:0}
.vbar .ttl b{display:block;font:700 17px 'Plus Jakarta Sans';white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vbar .ttl span{font:700 11px 'Plus Jakarta Sans';letter-spacing:1.6px;text-transform:uppercase;color:var(--orange)}
.count{font:700 14px 'Plus Jakarta Sans';padding:8px 14px;border-radius:9px;background:rgba(255,255,255,.1)}
.thumbs{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:6px 4px 2px;scrollbar-width:none}
.thumbs::-webkit-scrollbar{display:none}
.thumbs button{flex:none;width:54px;height:74px;border-radius:6px;overflow:hidden;opacity:.4;border:2px solid transparent;transition:.25s var(--ease);background:#fff}
.thumbs button img{width:100%;height:100%;object-fit:cover;object-position:top}
.thumbs button.on{opacity:1;border-color:var(--orange);transform:translateY(-4px)}
.progress{width:100%;height:3px;border-radius:3px;background:rgba(255,255,255,.12);margin-top:12px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--orange);transition:width .45s var(--ease)}
.nav{position:absolute;top:50%;z-index:3;width:56px;height:56px;margin-top:-28px;border-radius:50%;background:var(--orange);display:grid;place-items:center;box-shadow:0 10px 30px rgba(239,128,0,.35);transition:.3s}
.nav:active{transform:scale(.92)}
.nav.l{left:18px}.nav.r{right:18px}
#viewer.bare .nav{opacity:0;pointer-events:none}
.nav[disabled]{opacity:0;pointer-events:none}

.fly{position:fixed;z-index:30;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 40px 100px rgba(29,31,35,.35);transition:all .6s var(--ease);pointer-events:none}
.fly img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}

.toast{position:fixed;left:50%;bottom:34px;z-index:60;transform:translate(-50%,40px);opacity:0;padding:13px 20px;border-radius:12px;background:var(--ink);color:#fff;font-size:14px;font-weight:500;box-shadow:var(--shadow);transition:.45s var(--spring)}
.toast.on{transform:translate(-50%,0);opacity:1}

@media (max-width:700px){.wrap,header.top .in{padding-left:16px;padding-right:16px}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.card{padding:10px}.nav{display:none}.pad{grid-template-columns:repeat(3,66px)}.pad button{width:66px;height:66px}.prod-head .n{display:none}.brand,.brand .e,.brand .rest{height:52px}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}}

/* ---------- Navigation principale ---------- */
.tabs{display:flex;gap:4px;padding:4px;border-radius:11px;background:var(--fond);border:1px solid var(--ligne)}
.tabs button{padding:8px 16px;border-radius:8px;font:600 14px 'Plus Jakarta Sans';color:var(--gris);transition:.25s var(--ease);white-space:nowrap}
.tabs button.on{background:var(--blanc);color:var(--ink);box-shadow:var(--shadow-sm)}
.tabs button .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-left:6px;vertical-align:middle}
.view{display:none}
.view.on{display:block;animation:rise .5s var(--ease) both}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font:700 15px 'Plus Jakarta Sans';padding:13px 24px;border-radius:9px;transition:.2s;white-space:nowrap}
.btn-orange{background:var(--orange);color:#fff}
.btn-orange:active{background:var(--orange-hover);transform:scale(.97)}
.btn-ghost{border:1.5px solid #D4D8DE;color:var(--ink)}
.btn-ghost:active{border-color:var(--ink)}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:8px}
.btn-danger{color:#C9352B;border:1.5px solid #F1C9C5}
.btn[disabled]{opacity:.5;pointer-events:none}
.empty{text-align:center;padding:60px 20px;color:var(--gris);border:1.5px dashed var(--ligne);border-radius:var(--radius);margin-top:20px}
.empty b{display:block;font:700 18px 'Plus Jakarta Sans';color:var(--ink);margin-bottom:6px}
.badge.p{background:#fff;color:var(--ink);border:1px solid var(--ligne)}

/* ---------- Fichiers partagés ---------- */
.drop{display:flex;align-items:center;gap:22px;margin-top:26px;padding:26px 28px;border:2px dashed #F4C58F;border-radius:var(--radius);background:var(--orange-pale);transition:.25s}
.drop.over{border-color:var(--orange);transform:scale(1.01)}
.drop .ic{flex:none;width:56px;height:56px;border-radius:14px;background:var(--orange);display:grid;place-items:center}
.drop .ic svg{width:26px;height:26px;stroke:#fff}
.drop b{display:block;font:700 18px 'Plus Jakarta Sans'}
.drop span{font-size:13.5px;color:var(--gris)}
.drop .btn{margin-left:auto}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:26px}
.scard{display:flex;flex-direction:column;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden;opacity:0;transform:translateY(20px);transition:transform .6s var(--ease),opacity .6s var(--ease),box-shadow .25s,border-color .25s}
.scard.in{opacity:1;transform:none}
.scard.sel{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.scard .cov{position:relative;height:190px;background:var(--fond);overflow:hidden;border-bottom:1px solid var(--ligne)}
.scard .cov img{width:100%;height:100%;object-fit:cover;object-position:top}
.scard .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.scard .body b{font:700 15px 'Plus Jakarta Sans';line-height:1.3}
.scard .body small{font-size:12.5px;color:var(--gris)}
.scard .acts{display:flex;gap:8px;margin-top:auto;padding-top:10px}
.scard .acts .btn{flex:1}
.addbtn.on{background:var(--orange);color:#fff;border-color:var(--orange)}
.icon-del{flex:none!important;width:40px;padding:0!important}

/* ---------- Fenêtres ---------- */
.modal{position:fixed;inset:0;z-index:40;display:none;place-items:center;background:rgba(29,31,35,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:20px}
.modal.on{display:grid;animation:fade .25s both}
.sheet{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.25);animation:rise .4s var(--ease) both}
.sheet h3{font-size:22px;font-weight:800;margin:6px 0 18px}
.sheet p.txt{color:var(--gris);font-size:14.5px;margin:-8px 0 18px}
.field{display:block;margin-bottom:14px}
.field span{display:block;font-size:12.5px;font-weight:500;color:var(--gris);margin-bottom:6px}
.field input,.field select{width:100%;font:500 15px Poppins;color:var(--ink);padding:12px 14px;border:1.5px solid var(--ligne);border-radius:9px;background:#fff;-webkit-appearance:none;appearance:none}
.field input:focus,.field select:focus{outline:none;border-color:var(--orange)}
.seg{display:flex;gap:6px}
.seg button{flex:1;padding:11px;border-radius:9px;border:1.5px solid var(--ligne);font:600 14px 'Plus Jakarta Sans';color:var(--gris)}
.seg button.on{border-color:var(--orange);color:var(--orange);background:var(--orange-pale)}
.file-pick{display:flex;align-items:center;gap:14px;padding:14px;border:1.5px solid var(--ligne);border-radius:12px;margin-bottom:16px}
.file-pick .pdf{flex:none;width:44px;height:52px;border-radius:6px;background:#E5484D;color:#fff;display:grid;place-items:center;font:800 11px 'Plus Jakarta Sans'}
.file-pick b{display:block;font-size:14px;word-break:break-all}
.file-pick small{color:var(--gris)}
.sheet .foot{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
.bar{height:8px;border-radius:8px;background:var(--fond);overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;width:0;background:var(--orange);transition:width .3s}
.bar.indet i{width:35%!important;animation:indet 1.1s ease-in-out infinite}
@keyframes indet{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
.err{color:#C9352B;font-size:13.5px;margin-top:10px;min-height:1px}

/* ---------- Administration ---------- */
.adm-tabs{display:flex;gap:6px;margin:24px 0 18px;overflow-x:auto;scrollbar-width:none}
.adm-tabs button{padding:10px 16px;border-radius:9px;border:1.5px solid var(--ligne);font:600 14px 'Plus Jakarta Sans';color:var(--gris);white-space:nowrap}
.adm-tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.adm-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.adm-head p{flex:1;min-width:240px;font-size:14px;color:var(--gris)}
.rows{border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden}
.row-i{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--ligne);flex-wrap:wrap}
.row-i:first-child{border-top:0}
.row-i .mini{flex:none;width:42px;height:56px;border-radius:5px;border:1px solid var(--ligne);object-fit:cover;object-position:top;background:var(--fond)}
.row-i .main{flex:1;min-width:200px}
.row-i .main input{width:100%;font:600 15px 'Plus Jakarta Sans';color:var(--ink);border:1.5px solid transparent;border-radius:7px;padding:6px 8px;margin-left:-8px;background:none}
.row-i .main input:focus{outline:none;border-color:var(--orange);background:#fff}
.row-i .main small{display:block;font-size:12px;color:var(--gris)}
.row-i select{font:500 13px Poppins;padding:8px 10px;border:1.5px solid var(--ligne);border-radius:8px;background:#fff;color:var(--ink)}
.row-i .acts{display:flex;gap:6px}
.av-r{flex:none;width:42px;height:42px;border-radius:50%;background:var(--orange-pale);color:var(--orange);display:grid;place-items:center;font:700 16px 'Plus Jakarta Sans'}
.role{font:700 10.5px 'Plus Jakarta Sans';letter-spacing:1px;text-transform:uppercase;padding:4px 8px;border-radius:6px;background:var(--fond);color:var(--gris)}
.role.admin{background:var(--ink);color:#fff}
.addform{display:flex;gap:10px;flex-wrap:wrap;padding:14px 16px;background:var(--fond);border-top:1px solid var(--ligne)}
.addform input,.addform select{flex:1;min-width:140px;font:500 14px Poppins;padding:10px 12px;border:1.5px solid var(--ligne);border-radius:8px;background:#fff}

@media (max-width:820px){header.top .in{flex-wrap:wrap}.tabs{order:9;width:100%}.tabs button{flex:1;padding:8px 6px;font-size:13px}.drop{flex-wrap:wrap}.drop .btn{margin-left:0;width:100%}}

/* ---------- Pastille Nouveau ---------- */
.new{position:absolute;bottom:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:6px;font:700 10px 'Plus Jakarta Sans';letter-spacing:1px;text-transform:uppercase;padding:5px 9px 5px 8px;border-radius:99px;background:#fff;color:var(--orange);box-shadow:0 4px 14px rgba(239,128,0,.3)}
.new:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);animation:ping 1.6s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(239,128,0,.6)}80%,100%{box-shadow:0 0 0 7px rgba(239,128,0,0)}}
.card.is-new{border-color:#F4C58F}
.pill.news{background:var(--orange-pale);border-color:#F4C58F;color:var(--orange);font-weight:600;cursor:pointer}
.pill.news i{background:var(--orange);box-shadow:0 0 0 4px rgba(239,128,0,.18);animation:ping 1.6s ease-out infinite}

/* ---------- Carte outil (simulateur) ---------- */
.card .paper.tool{display:flex;flex-direction:column;justify-content:space-between;padding:18px;border:0;background:linear-gradient(150deg,#F58A1F 0%,#EF8000 45%,#D96F00 100%);color:#fff;overflow:hidden}
.card .paper.tool:before{content:"";position:absolute;right:-60px;bottom:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.12)}
.card .paper.tool:after{content:"";position:absolute;right:-20px;bottom:-20px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.12)}
.tool .t-ic{width:48px;height:48px;border-radius:12px;background:rgba(255,255,255,.2);display:grid;place-items:center}
.tool .t-ic svg{width:26px;height:26px;stroke:#fff}
.tool .t-big{position:relative;z-index:1;font:800 30px/1.05 'Plus Jakarta Sans';letter-spacing:-.02em}
.tool .t-big small{display:block;font:500 12px Poppins;opacity:.85;margin-top:8px;letter-spacing:0}
.badge.o{background:#fff;color:var(--orange)}

/* ---------- Simulateur ---------- */
#simu,#equiv{background:var(--fond);z-index:25;overflow-y:auto}
#simu.on,#equiv.on{display:block;animation:fade .3s both}
.simu-top{display:flex;align-items:center;gap:14px;padding:calc(16px + env(safe-area-inset-top)) 28px 0;max-width:1180px;margin:0 auto}
.simu-top h2{font-size:26px;font-weight:800}
.simu-grid{max-width:1180px;margin:0 auto;padding:22px 28px 40px;display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:start}
.panel{background:#fff;border:1px solid var(--ligne);border-radius:20px;padding:26px;box-shadow:var(--shadow-sm);animation:rise .6s var(--ease) both}
.panel+.panel{animation-delay:.08s}
.amount{font:800 clamp(40px,5.2vw,58px)/1 'Plus Jakarta Sans';letter-spacing:-.03em;text-align:right;padding:6px 4px 16px;border-bottom:2px solid var(--ligne);margin:10px 0 18px;white-space:nowrap;overflow:hidden}
.amount span{color:var(--gris-2);font-size:.55em;margin-left:6px}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.quick button{flex:1;min-width:70px;padding:10px 6px;border-radius:9px;border:1.5px solid var(--ligne);font:600 14px 'Plus Jakarta Sans';color:var(--ink);transition:.2s}
.quick button.on{border-color:var(--orange);background:var(--orange-pale);color:var(--orange)}
input[type=range].slide-amt{width:100%;margin:4px 0 20px;accent-color:var(--orange);height:28px}
.spad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.spad button{height:62px;border-radius:12px;background:var(--fond);border:1px solid var(--ligne);font:600 24px 'Plus Jakarta Sans';color:var(--ink);transition:background .15s,transform .12s}
.spad button:active{background:var(--orange);color:#fff;transform:scale(.96)}
.spad button.muted{font-size:18px;color:var(--gris)}
.res{display:flex;flex-direction:column;gap:16px}
.res-card{position:relative;border-radius:18px;padding:24px 26px;background:#fff;border:1.5px solid var(--ligne);overflow:hidden}
.res-card.hi{background:var(--ink);border-color:var(--ink);color:#fff}
.res-card .dur{font:700 12px 'Plus Jakarta Sans';letter-spacing:2px;text-transform:uppercase;color:var(--orange)}
.res-card .val{font:800 clamp(44px,6vw,68px)/1 'Plus Jakarta Sans';letter-spacing:-.03em;margin-top:12px}
.res-card .val small{font:500 18px Poppins;letter-spacing:0;color:var(--gris-2);margin-left:6px}
.res-card.hi .val small{color:rgba(255,255,255,.55)}
.res-note{font-size:13px;color:var(--gris);padding:4px 6px}
.res-note.warn{color:#B25E00;background:var(--orange-pale);border-radius:10px;padding:12px 14px}
@media (max-width:820px){.simu-grid{grid-template-columns:1fr}}

/* ---------- Recherche ---------- */
#search{background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:25;overflow-y:auto}
#search.on{display:block;animation:fade .25s both}
.s-top{position:sticky;top:0;z-index:2;background:rgba(255,255,255,.95);border-bottom:1px solid var(--ligne)}
.s-top .in{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 28px 16px}
.s-box{flex:1;display:flex;align-items:center;gap:12px;padding:0 18px;height:56px;border-radius:14px;border:2px solid var(--orange);background:#fff;box-shadow:0 8px 30px rgba(239,128,0,.12)}
.s-box svg{flex:none;stroke:var(--orange)}
.s-box input{flex:1;border:0;outline:none;font:600 20px 'Plus Jakarta Sans';color:var(--ink);background:none;min-width:0}
.s-body{max-width:900px;margin:0 auto;padding:20px 28px 60px}
.s-hint{color:var(--gris);font-size:14px;padding:6px 2px}
.s-sugg{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.s-sugg button{padding:9px 14px;border-radius:99px;border:1.5px solid var(--ligne);font:600 13px 'Plus Jakarta Sans';color:var(--gris)}
.s-doc{margin-top:22px;animation:rise .4s var(--ease) both}
.s-doc h3{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;margin-bottom:10px}
.s-doc h3 small{font:500 12px Poppins;color:var(--gris)}
.s-hit{display:flex;gap:16px;align-items:flex-start;width:100%;text-align:left;padding:12px;border-radius:12px;border:1px solid var(--ligne);background:#fff;margin-bottom:8px;transition:.2s}
.s-hit:active{border-color:var(--orange);transform:scale(.99)}
@media (hover:hover){.s-hit:hover{border-color:#F4C58F;box-shadow:var(--shadow-sm)}}
.s-hit img{flex:none;width:58px;height:78px;object-fit:cover;object-position:top;border-radius:6px;border:1px solid var(--ligne);background:var(--fond)}
.s-hit b{display:block;font:700 13px 'Plus Jakarta Sans';color:var(--orange);margin-bottom:4px}
.s-hit p{font-size:14px;color:var(--gris);line-height:1.5}
.s-hit mark{background:var(--orange-pale);color:var(--ink);font-weight:600;border-radius:3px;padding:0 2px}
.tag-s{font:700 10px 'Plus Jakarta Sans';letter-spacing:1px;text-transform:uppercase;padding:3px 7px;border-radius:5px;background:var(--fond);color:var(--gris)}

/* ---------- Annotation ---------- */
#ink{position:absolute;inset:0;z-index:2;touch-action:none;pointer-events:none}
#viewer.drawing #ink{pointer-events:auto;cursor:crosshair}
#viewer.laser #ink{cursor:none}
.vtool{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.25);color:#fff;transition:.2s}
.vtool.on{background:var(--orange);border-color:var(--orange)}
.inkbar{position:absolute;left:50%;top:calc(76px + env(safe-area-inset-top));z-index:4;transform:translate(-50%,-10px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:99px;background:#fff;box-shadow:0 16px 40px rgba(0,0,0,.35);transition:.3s var(--ease)}
#viewer.drawing .inkbar{opacity:1;transform:translate(-50%,0);pointer-events:auto}
#viewer.laser .inkbar .pen-only{display:none}
.inkbar .col{width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--ligne);transition:.2s}
.inkbar .col.on{box-shadow:0 0 0 2.5px var(--ink);transform:scale(1.1)}
.inkbar .sep{width:1px;height:24px;background:var(--ligne);margin:0 2px}
.inkbar button.txt{font:700 13px 'Plus Jakarta Sans';color:var(--ink);padding:7px 12px;border-radius:99px}
.inkbar button.txt.ok{background:var(--orange);color:#fff}

/* ---------- Activation de l'appareil ---------- */
.act-txt{font-size:14px;color:var(--gris);margin:-12px 0 22px;line-height:1.55}
#actForm{display:flex;flex-direction:column;gap:12px}
.act-code{font:800 30px 'Plus Jakarta Sans';letter-spacing:6px;text-align:center;text-transform:uppercase;padding:16px;border:2px solid var(--ligne);border-radius:14px;color:var(--ink);background:var(--fond);width:100%}
.act-code:focus{outline:none;border-color:var(--orange);background:#fff}
.act-code.shake{animation:shake .45s}
.act-etapes{text-align:left;background:var(--orange-pale);border-radius:14px;padding:16px 18px;font-size:14px;line-height:1.5}
.act-etapes ol{margin:8px 0 8px 20px}
.act-etapes li{margin:4px 0}
.act-ic{display:inline-block;padding:0 6px;border-radius:5px;background:#fff;font-size:12px}
.act-note{font-size:12.5px;color:var(--gris);margin-top:6px}
.act-lien{margin-top:12px;font-size:13px;color:var(--gris);text-decoration:underline}
.act-btn{width:100%;padding:16px;font-size:16px}
.code-geant{font:800 40px 'Plus Jakarta Sans';letter-spacing:6px;text-align:center;padding:18px;border-radius:14px;background:var(--orange-pale);color:var(--ink);margin:6px 0 10px;-webkit-user-select:all;user-select:all}
.appareil{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--gris);padding:4px 0}
.appareil b{color:var(--ink);font-weight:600}

/* ---------- Équivalence 60 -> 48 mois ---------- */
.card .paper.tool.tool-ink{background:linear-gradient(150deg,#2B2E34,#1D1F23)}
.eq-grille{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px;max-height:62vh;overflow-y:auto;padding:2px}
.eq-grille button{padding:12px 4px;border-radius:10px;border:1.5px solid var(--ligne);background:#fff;font:700 15px 'Plus Jakarta Sans';color:var(--ink);transition:.15s}
.eq-grille button.on{background:var(--orange);border-color:var(--orange);color:#fff;transform:scale(1.04)}
.eq-vide{padding:40px 10px;text-align:center;color:var(--gris);font-size:14px;border:1.5px dashed var(--ligne);border-radius:16px}
.eq-fleche{text-align:center;font:800 26px 'Plus Jakarta Sans';color:var(--orange);margin:-4px 0}

.eq-admin .row-i{flex-wrap:nowrap;gap:12px}
.eq-admin label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--gris)}
.eq-admin input{width:90px;font:600 14px 'Plus Jakarta Sans';padding:7px 9px;border:1.5px solid var(--ligne);border-radius:8px}
.eq-admin .eq-fl{color:var(--orange);font-weight:800}
.eq-admin .eq-msg{flex:1;color:#B25E00;font-size:12px}
.eq-admin .eq-ko{background:var(--orange-pale)}
