/* NxRoms v207 — interface publique autonome et stable */
:root{
  --nx207-purple:#7c3aed;
  --nx207-purple2:#5b5df7;
  --nx207-text:#25283a;
  --nx207-muted:#74798a;
  --nx207-sidebar:210px;
  --nx207-header:64px;
}
html,body{margin:0;min-height:100%;}
body.nx-v207-public{
  margin:0!important;
  min-height:100vh!important;
  overflow-x:hidden!important;
  color:var(--nx207-text)!important;
  background:
    radial-gradient(circle at 20% 0%,rgba(124,58,237,.07),transparent 30%),
    radial-gradient(circle at 85% 2%,rgba(236,72,153,.08),transparent 27%),
    linear-gradient(180deg,#eef2f9 0%,#f8f8fc 55%,#f4f5fb 100%)!important;
}
html:not(.nx-admin-boot) body.nx-v207-public #root{display:none!important;}
body.nx-v207-public>.topbar,
body.nx-v207-public>.top-tabs,
body.nx-v207-public>.nx-brand-nav{display:none!important;}

#nxV207App{min-height:100vh;font-family:Inter,Arial,sans-serif;}
.nx207-header{
  position:fixed;z-index:1000;top:0;left:0;right:0;height:var(--nx207-header);
  display:flex;align-items:center;gap:10px;padding:0 18px;
  background:rgba(250,252,255,.88);border-bottom:1px solid rgba(85,91,121,.10);
  box-shadow:0 7px 28px rgba(66,69,103,.08);backdrop-filter:blur(18px) saturate(1.15);
}
.nx207-logo{margin-right:12px;text-decoration:none;color:#25283a;font:900 27px/1 Outfit,Inter,sans-serif;letter-spacing:-1.4px;white-space:nowrap}
.nx207-logo b{color:var(--nx207-purple);}
.nx207-nav{display:flex;align-items:center;gap:8px}.nx207-spacer{flex:1}
.nx207-btn,.nx207-menu-trigger{
  height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;
  border:1px solid rgba(93,98,130,.10);border-radius:10px;background:rgba(255,255,255,.75);
  color:#303447;text-decoration:none;font:700 12px Inter,sans-serif;cursor:pointer;white-space:nowrap;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.nx207-btn:hover,.nx207-menu-trigger:hover{transform:translateY(-1px);background:#fff;box-shadow:0 8px 22px rgba(62,64,96,.10)}
.nx207-btn svg,.nx207-menu-trigger svg{width:16px;height:16px}.nx207-admin{color:#fff;background:linear-gradient(135deg,#7c3aed,#5b21b6);border:0;box-shadow:0 8px 20px rgba(91,33,182,.24)}
.nx207-menu{position:relative}.nx207-dropdown{position:absolute;top:48px;left:0;width:225px;padding:8px;border-radius:14px;background:rgba(255,255,255,.98);border:1px solid rgba(86,91,119,.12);box-shadow:0 22px 55px rgba(50,52,82,.20);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.16s ease}
.nx207-menu.open .nx207-dropdown{opacity:1;visibility:visible;transform:none}.nx207-dropdown button{width:100%;height:38px;border:0;border-radius:9px;background:transparent;text-align:left;padding:0 10px;color:#35394a;font:650 12px Inter,sans-serif;cursor:pointer}.nx207-dropdown button:hover,.nx207-dropdown button.active{background:#f0ebff;color:#6736d8}
.nx207-mobile{display:none}

.nx207-sidebar{
  position:fixed;z-index:500;top:var(--nx207-header);left:0;bottom:0;width:var(--nx207-sidebar);
  overflow:auto;padding:16px 14px 24px;background:rgba(250,251,255,.90);border-right:1px solid rgba(85,91,121,.09);backdrop-filter:blur(16px);
}
.nx207-side-title{padding:4px 9px 7px;color:#8c84cf;font:800 11px/1 Inter,sans-serif;text-transform:uppercase;letter-spacing:.04em}.nx207-side-group{margin-bottom:17px}
.nx207-side-btn{width:100%;min-height:36px;display:flex;align-items:center;gap:9px;border:0;border-radius:9px;padding:0 10px;background:transparent;color:#404454;font:600 12px Inter,sans-serif;text-align:left;cursor:pointer}.nx207-side-btn:hover{background:rgba(124,58,237,.07);color:#6838d7}.nx207-side-btn.active{background:linear-gradient(90deg,rgba(124,58,237,.15),rgba(124,58,237,.035));color:#6736d8}.nx207-side-btn svg{width:15px;height:15px}
.nx207-premium{padding:14px 12px;border-radius:13px;border:1px solid rgba(124,58,237,.11);background:linear-gradient(145deg,#fff,rgba(239,232,255,.72));box-shadow:0 10px 24px rgba(86,65,139,.08)}.nx207-premium strong{color:#f59e0b;font:800 12px Inter,sans-serif}.nx207-premium p{color:#707688;font:500 10px/1.5 Inter,sans-serif}.nx207-premium a{height:38px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;text-decoration:none;font:800 11px Inter,sans-serif}

.nx207-main{padding:var(--nx207-header) 16px 42px calc(var(--nx207-sidebar) + 16px)}
.nx207-hero{position:relative;height:292px;margin:0 -16px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.18)),url('./nx-v204-hero-scene.svg') center/cover no-repeat;isolation:isolate}
.nx207-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:88px;background:linear-gradient(transparent,rgba(246,247,252,.95));z-index:-1}.nx207-hero-inner{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:42px;text-align:center}.nx207-hero h1{margin:0;color:#4f46e5;font:900 58px/1 Outfit,Inter,sans-serif;letter-spacing:.04em;text-shadow:0 10px 30px rgba(91,70,190,.20),0 1px #fff}.nx207-hero p{margin:12px 0 18px;color:#454a5a;font:600 14px Inter,sans-serif;text-shadow:0 1px #fff}.nx207-search-wrap{position:relative;width:min(570px,88vw)}.nx207-search{width:100%;height:56px;padding:0 54px 0 20px;border:1px solid rgba(124,58,237,.16);border-radius:14px;background:rgba(255,255,255,.94);color:#25283a;font:600 14px Inter,sans-serif;outline:0;box-shadow:0 18px 38px rgba(78,67,126,.14),inset 0 1px #fff}.nx207-search:focus{border-color:rgba(99,102,241,.48);box-shadow:0 0 0 4px rgba(124,58,237,.10),0 18px 38px rgba(78,67,126,.17)}.nx207-search-icon{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#555a70;pointer-events:none}

.nx207-catalog{position:relative;margin-top:-32px;padding:20px;border-radius:20px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.92);box-shadow:0 22px 58px rgba(77,72,112,.13);backdrop-filter:blur(16px)}
.nx207-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.nx207-count{margin-right:auto;color:#666d7d;font:700 12px Inter,sans-serif}.nx207-count strong{color:var(--nx207-purple);font:900 18px Outfit,Inter,sans-serif}.nx207-controls{display:flex;align-items:center;gap:8px}.nx207-select{height:40px;min-width:128px;padding:0 34px 0 12px;border:1px solid rgba(86,91,119,.12);border-radius:10px;background:#fff;color:#424758;font:650 11px Inter,sans-serif;outline:0}.nx207-view{width:42px;min-width:42px;padding:0}.nx207-view.active{background:linear-gradient(135deg,#9b70ef,#7650e6);color:#fff;box-shadow:0 8px 18px rgba(110,73,223,.22)}
.nx207-message{display:none;margin:0 0 14px;padding:12px 14px;border-radius:10px;background:#f6f3ff;color:#6336cf;font:700 12px Inter,sans-serif}.nx207-message.show{display:block}.nx207-message.error{background:#fff1f2;color:#b42318}
.nx207-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:15px;align-items:stretch}.nx207-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:328px;overflow:hidden;border:1px solid rgba(77,82,111,.10);border-radius:11px;background:#fff;box-shadow:0 10px 24px rgba(67,64,100,.10);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.nx207-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(74,67,119,.16)}
.nx207-cover{position:relative;height:226px;min-height:226px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,#f2f4f9,#e5e8f0 62%,#cdd2dd)}.nx207-cover img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .18s ease}.nx207-card:hover .nx207-cover img:not(.fit-contain){transform:scale(1.018)}.nx207-cover img.fit-contain{object-fit:contain;padding:9px;background:linear-gradient(145deg,#eef1f7,#dde2ec)}.nx207-no-cover{color:rgba(66,72,91,.25);font:900 31px Outfit,sans-serif}.nx207-badges{position:absolute;right:7px;top:7px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.nx207-badge{padding:4px 7px;border-radius:999px;background:#465164;color:#fff;font:900 8px/1 Inter,sans-serif;box-shadow:0 5px 12px rgba(27,33,48,.22)}.nx207-badge.dlc{background:linear-gradient(135deg,#7c3aed,#5b21b6)}.nx207-badge.xci{background:#a61b24}.nx207-badge.nsp{background:#007a8a}.nx207-badge.pkg{background:#374151}.nx207-badge.zip{background:#4b5563}
.nx207-info{display:flex;flex-direction:column;flex:1;padding:11px 10px 12px}.nx207-title{margin:0;min-height:2.6em;color:#252839;font:800 12px/1.3 Outfit,Inter,sans-serif;overflow-wrap:anywhere}.nx207-meta{margin-top:auto;padding-top:9px;color:#7a8090;font:600 9px/1.45 Inter,sans-serif}
.nx207-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:20px 0 5px}.nx207-page{min-width:42px;height:40px;padding:0 12px;border:1px solid rgba(89,92,119,.14);border-radius:10px;background:#fff;color:#4b5060;font:800 12px Inter,sans-serif;cursor:pointer;box-shadow:0 6px 16px rgba(65,62,95,.06)}.nx207-page:hover:not(:disabled){border-color:rgba(124,58,237,.45);color:#6636d7}.nx207-page.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.nx207-page:disabled{opacity:.4;cursor:not-allowed}.nx207-page-info{text-align:center;color:#7a8090;font:700 11px Inter,sans-serif;margin:8px 0 2px}
.nx207-empty{grid-column:1/-1;min-height:260px;display:flex;align-items:center;justify-content:center;color:#687084;font:800 14px Inter,sans-serif}
body.nx207-list .nx207-grid{grid-template-columns:1fr}.nx207-list .nx207-card{min-height:130px;display:grid;grid-template-columns:92px 1fr}.nx207-list .nx207-cover{height:130px;min-height:130px;grid-row:1}.nx207-list .nx207-title{min-height:0;font-size:15px}.nx207-list .nx207-info{justify-content:center}
.nx207-footer{padding:26px 10px;text-align:center;color:#858a99;font:600 11px Inter,sans-serif}

@media(max-width:1050px){:root{--nx207-sidebar:188px}.nx207-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.nx207-header{padding:0 10px}.nx207-btn,.nx207-menu-trigger{padding:0 10px}.nx207-header .nx207-right .nx207-btn span{display:none}}
@media(max-width:820px){.nx207-mobile{display:inline-flex}.nx207-header>.nx207-nav{display:none}.nx207-sidebar{transform:translateX(-105%);transition:transform .2s ease;box-shadow:18px 0 40px rgba(52,48,85,.16)}body.nx207-menu-open .nx207-sidebar{transform:none}.nx207-main{padding-left:12px;padding-right:12px}.nx207-hero{margin:0 -12px}.nx207-logo{margin-right:auto}.nx207-toolbar{align-items:flex-start;flex-direction:column}.nx207-controls{width:100%;overflow:auto}.nx207-count{width:100%}}
@media(max-width:640px){.nx207-header{gap:6px}.nx207-logo{font-size:22px}.nx207-right .nx207-btn:not(.nx207-admin){display:none}.nx207-hero{height:245px}.nx207-hero h1{font-size:39px}.nx207-hero p{font-size:12px}.nx207-catalog{padding:12px;margin-top:-24px;border-radius:15px}.nx207-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nx207-cover{height:194px;min-height:194px}.nx207-card{min-height:292px}.nx207-select{min-width:122px}}
/* v208 — ouverture Admin sans réafficher l'ancienne interface React */
#nx207Admin.loading{opacity:.68;cursor:wait;pointer-events:none}
body.nx207-admin-opening::after{
  content:'Ouverture de l’administration…';
  position:fixed;inset:0;z-index:999999;
  display:flex;align-items:center;justify-content:center;
  background:rgba(246,247,252,.88);
  backdrop-filter:blur(14px);
  color:#4c1d95;font:800 18px/1.3 Inter,sans-serif;
}
/* Le formulaire de connexion reste au-dessus du nouveau site, sans révéler l'ancien #root. */
html:not(.nx-admin-boot) body.nx-v207-public #nx-admin-login-modal{display:block!important;z-index:999998!important}
html:not(.nx-admin-boot) body.nx-v207-public #nx-admin-login-modal.nx-hidden{display:none!important}
