:root{
  --bg:#11151d;
  --sidebar:#0d1118;
  --panel:#171c26;
  --panel2:#0f141c;
  --panel3:#1b212c;
  --text:#f4f7fb;
  --text-soft:#d7e0ee;
  --muted:#91a1bd;
  --muted2:#6f7f9b;
  --border:#2a3240;
  --border-strong:#343d4c;
  --primary:#8ebdff;
  --primary-strong:#5b9df8;
  --primary-soft:rgba(105,169,255,.12);
  --danger:#ff6f7d;
  --ok:#64e2bd;
  --warn:#f5c96a;
  --shadow:0 18px 46px rgba(0,0,0,.23);
  --radius:22px;
  --field-radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html{background:var(--bg)}
body{display:grid;grid-template-columns:238px minmax(0,1fr);letter-spacing:.005em}
a{color:inherit}
aside{position:sticky;top:0;height:100vh;padding:24px 17px;border-right:1px solid var(--border);background:var(--sidebar);display:flex;flex-direction:column}
.brand{display:flex;gap:12px;align-items:center;padding:5px 9px 24px}.brand.big{padding:0 0 19px}.brand b{letter-spacing:.16em;font-size:15px}.brand small{display:block;color:var(--muted);margin-top:3px;font-size:12px}
.bolt{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(150deg,#e1eeff,#7caeff);color:#08101c;font-size:25px;font-weight:900;box-shadow:0 8px 24px rgba(70,130,220,.20)}
nav{display:grid;gap:5px}.nav{padding:11px 13px;border-radius:11px;color:var(--muted);text-decoration:none;font-weight:650;font-size:14px}.nav:hover,.nav.active{background:var(--panel);color:var(--text)}.nav.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.aside-foot{margin-top:auto;display:grid;gap:7px;padding:14px 9px;color:var(--muted);font-size:13px}.aside-foot a{color:var(--text-soft);text-decoration:none}.aside-foot a:hover{color:#fff}
main{min-width:0;padding:28px 34px 68px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}header h1{margin:0;font-size:27px;line-height:1.2;letter-spacing:-.02em}header p{margin:6px 0 0;color:var(--muted);font-size:13px}.theme{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 13px}.theme:hover{border-color:var(--border-strong)}
.toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:9px 0 19px}.toolbar h2{margin:0;font-size:22px;letter-spacing:-.015em}.toolbar p{margin-top:6px}.muted{color:var(--muted)}
.grid.apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.app-card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 0 rgba(255,255,255,.015)}.app-card{padding:20px}.app-card:hover{border-color:var(--border-strong)}.panel{padding:24px 28px;margin:17px 0}.app-title{display:flex;align-items:center;gap:10px}.app-title h2{margin:0;font-size:20px}.app-dot{width:11px;height:11px;border-radius:50%}
.actions,.row-actions{display:flex;gap:9px;flex-wrap:wrap}.button,button{appearance:none;border:1px solid var(--border);background:#202837;color:var(--text);padding:9px 13px;border-radius:10px;text-decoration:none;cursor:pointer;font:inherit;font-weight:650}.button:hover,button:hover{border-color:var(--border-strong);filter:brightness(1.04)}.primary{background:var(--primary);color:#07101e;border-color:transparent;font-weight:800}.danger{background:var(--danger);color:white;border-color:transparent;font-weight:800}.ghost{background:transparent}
.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--border)}.badge.ok{color:var(--ok);border-color:rgba(52,181,148,.38);background:rgba(40,154,127,.11)}.badge.warning{color:var(--warn);border-color:rgba(210,160,55,.35);background:rgba(210,160,55,.09)}.badge.error{color:#ff9aa3;border-color:rgba(255,107,120,.35);background:rgba(255,107,120,.09)}.badge.unknown{color:var(--muted)}
.env{font-size:11px;font-weight:850;padding:4px 7px;border-radius:6px}.env.prod{background:#4e1e25;color:#ffb4ba}.env.ctlq{background:#1d385c;color:#abd2ff}.env-switch{display:flex;border:1px solid var(--border);border-radius:11px;overflow:hidden}.env-switch a{padding:9px 14px;text-decoration:none;color:var(--muted);font-weight:750}.env-switch a.active.prod{background:#4e1e25;color:#fff}.env-switch a.active.ctlq{background:#1d385c;color:#fff}
.tabs{display:flex;gap:5px;border-bottom:1px solid var(--border);margin-bottom:12px}.tab{padding:11px 13px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:650}.tab.active{color:var(--text);border-color:var(--primary)}
.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:12px 11px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:700}
.settings-list{display:grid}.setting-row{display:grid;grid-template-columns:230px minmax(220px,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border-bottom:0}.setting-row label{font-weight:750;display:block;color:var(--text-soft)}.source{font-size:11px;color:var(--muted2)}
input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:11px 13px;border-radius:12px;font:inherit;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:#7889a7}input:focus,select:focus,textarea:focus{border-color:#5b7aa5;box-shadow:0 0 0 3px rgba(115,165,235,.10);background:#101620}label{display:grid;gap:8px;color:var(--text-soft);font-weight:700}.stack{display:grid;gap:16px;max-width:760px}.toggle{display:flex;align-items:center;gap:10px}.toggle input{width:auto}.inline-form{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.4fr auto;gap:8px}.health-list{display:grid;gap:7px}.health-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.danger-zone{border-color:#65333a}.alert{padding:12px 14px;border-radius:11px;margin:11px 0}.alert.error{background:#3d1f24;border:1px solid #70313a;color:#ffc0c5}code{white-space:pre-wrap;word-break:break-word}

/* Login: bento centré, dans le langage visuel de Nexikos */
body.login-page{display:flex!important;align-items:center;justify-content:center;min-height:100vh;width:100%;padding:28px;background:radial-gradient(circle at 50% 0%,rgba(106,153,218,.07),transparent 36%),var(--bg);grid-template-columns:none!important}
.login-card{width:min(500px,100%);padding:34px 36px 36px;background:var(--panel);border:1px solid var(--border);border-radius:28px;box-shadow:0 26px 70px rgba(0,0,0,.32)}
.login-card .brand.big{justify-content:flex-start}.login-card h1{font-size:28px;line-height:1.18;margin:6px 0 7px;letter-spacing:-.025em}.login-card>p{margin:0 0 24px}.login-card form{display:grid;gap:18px;margin-top:22px}.login-card label{font-size:15px}.login-card input{min-height:54px;border-radius:16px;font-size:16px}.login-card button{min-height:50px;border-radius:14px;margin-top:2px}.login-card:before{content:"ADMINISTRATION";display:block;margin-bottom:17px;color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.13em}

@media(max-width:1100px){.grid.apps{grid-template-columns:repeat(2,1fr)}.inline-form{grid-template-columns:1fr 1fr}.setting-row{grid-template-columns:180px 1fr}.setting-row .row-actions{grid-column:2}}
@media(max-width:760px){body{display:block}aside{position:static;height:auto;border-right:0;border-bottom:1px solid var(--border)}nav{grid-template-columns:repeat(3,1fr)}.nav{text-align:center}main{padding:20px}.grid.apps{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.setting-row{grid-template-columns:1fr}.setting-row .row-actions{grid-column:auto}.inline-form{grid-template-columns:1fr}.tabs{overflow:auto}.aside-foot{display:none}body.login-page{display:flex!important;padding:18px;min-height:100dvh}.login-card{width:100%;padding:26px 22px 28px;border-radius:23px}.login-card h1{font-size:24px}}


/* v1.0.4-op — Bentos de configuration alignés sur la Super console Nexikos */
.nexikos-config-bento{padding:30px 32px 28px;border-radius:28px;background:#171c26}
.config-bento-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}
.config-bento-head h2{margin:8px 0 9px;font-size:29px;letter-spacing:-.025em}
.config-bento-head p{margin:0;font-size:16px;line-height:1.5}
.eyebrow{color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.config-divider{height:1px;background:var(--border);margin:26px 0 28px}
.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px}
.config-field{display:grid;gap:9px;min-width:0}
.config-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:25px}
.config-label label{font-size:16px;color:var(--text-soft);font-weight:800;display:block}
.config-label .source{white-space:nowrap}
.config-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.config-control-row:has(.config-inherit){grid-template-columns:minmax(0,1fr) auto auto}
.config-field input,.config-field select{min-height:58px;border-radius:18px;background:#0f141c;border-color:#303844;padding:0 18px;font-size:17px}
.config-field input:focus,.config-field select:focus{border-color:#58749b;box-shadow:0 0 0 3px rgba(115,165,235,.09)}
.config-save,.config-inherit{min-height:58px;border-radius:16px;padding:0 14px;font-size:13px}
.config-save{background:#202837}
.config-note{margin-top:30px;padding:18px 22px;border-top:1px solid var(--border);color:var(--text);font-size:15px;line-height:1.55}
.config-note strong{color:#fff}
.compact-config{margin-top:22px}
@media(max-width:900px){.config-grid{grid-template-columns:1fr}.config-bento-head{gap:18px}.nexikos-config-bento{padding:25px 24px}}
@media(max-width:560px){.config-bento-head{display:grid}.config-bento-head .badge{justify-self:start}.config-control-row,.config-control-row:has(.config-inherit){grid-template-columns:1fr}.config-save,.config-inherit{min-height:46px}.config-field input,.config-field select{font-size:16px}.nexikos-config-bento{padding:22px 18px;border-radius:23px}}


/* v1.0.5-op — navigation multi-app + points d'attention actionnables */
.app-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px}
.app-switch{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:var(--panel2);color:var(--muted);text-decoration:none;font-weight:800;transition:.15s}
.app-switch:hover{border-color:var(--border-strong);color:var(--text);transform:translateY(-1px)}
.app-switch.active{background:var(--panel3);border-color:#46536a;color:var(--text);box-shadow:0 0 0 2px rgba(142,189,255,.05)}
.badge-link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;vertical-align:middle;border-radius:999px}
.badge-link:hover .badge{filter:brightness(1.12);border-color:currentColor}.badge-arrow{font-size:13px;color:var(--muted);font-weight:900}
.table-link{font-weight:800;text-decoration:none}.table-link:hover{color:var(--primary)}
.health-item>div:first-child{display:grid;gap:3px}.health-item small{display:block;color:var(--muted);font-size:12px;font-weight:500}
.health-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.button.compact{padding:6px 9px;font-size:12px;border-radius:9px}
section[id]{scroll-margin-top:24px}
@media(max-width:900px){.app-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.app-switcher{grid-template-columns:1fr 1fr}.app-switch{padding:11px 12px;font-size:13px}.health-item{align-items:flex-start;gap:12px}.health-actions{justify-content:flex-end}}

/* v1.0.7-op — page commerciale Immo Toolbox inspirée du langage visuel Nexikos */
.showcase-page{display:block;background:var(--bg);min-height:100vh}
.showcase-shell{width:min(1440px,100%);margin:0 auto}
.showcase-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 34px;border-bottom:1px solid var(--border);margin:0;position:sticky;top:0;z-index:10;background:rgba(17,21,29,.94);backdrop-filter:blur(16px)}
.showcase-brand{padding:0;text-decoration:none}.showcase-brand .bolt{width:48px;height:48px;border-radius:16px}.showcase-brand b{font-size:15px}.showcase-brand small{font-size:12px}
.showcase-links{display:flex;align-items:center;gap:18px}.showcase-links>a:not(.button){text-decoration:none;color:var(--muted);font-weight:750}.showcase-links>a:not(.button):hover{color:var(--text)}
.showcase-main{padding:0 34px 34px}
.showcase-hero{min-height:620px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:52px;align-items:center;padding:70px 0 56px}
.hero-copy h1{font-size:clamp(44px,6vw,78px);line-height:.98;letter-spacing:-.055em;margin:14px 0 24px;max-width:900px}.hero-copy>p{font-size:19px;line-height:1.65;color:var(--muted);max-width:760px;margin:0 0 28px}
.showcase-actions{display:flex;gap:11px;flex-wrap:wrap}.showcase-actions .button{padding:13px 18px;border-radius:14px}
.hero-bento{padding:34px;border:1px solid var(--border);border-radius:32px;background:linear-gradient(145deg,var(--panel),#121721);box-shadow:var(--shadow)}
.hero-stack{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px;margin:24px 0 30px}.hero-stack strong{font-size:25px;letter-spacing:-.025em}.hero-stack span{color:var(--muted);align-self:end;padding-bottom:4px}
.hero-status{display:flex;align-items:center;gap:9px;border-top:1px solid var(--border);padding-top:20px;color:var(--text-soft);font-size:13px}.status-dot{width:9px;height:9px;border-radius:99px;background:var(--ok);box-shadow:0 0 0 5px rgba(100,226,189,.08)}
.showcase-section{padding:62px 0}.section-copy{max-width:760px;margin-bottom:26px}.section-copy h2,.showcase-zeus h2{font-size:36px;letter-spacing:-.035em;margin:10px 0 12px}.section-copy p,.showcase-zeus p{color:var(--muted);font-size:17px;line-height:1.6;margin:0}
.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.showcase-tool{padding:28px;border:1px solid var(--border);border-radius:26px;background:var(--panel);min-height:320px;display:flex;flex-direction:column}.showcase-tool-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.showcase-app-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--app-accent) 18%,#0f141c);border:1px solid color-mix(in srgb,var(--app-accent) 48%,#2a3240);color:var(--app-accent);font-weight:900;font-size:18px}.showcase-tool-meta{color:var(--muted2);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-align:right}.showcase-tool h2{font-size:30px;margin:22px 0 4px;letter-spacing:-.03em}.showcase-tool h3{font-size:17px;margin:0 0 12px;color:var(--text-soft)}.showcase-tool p{color:var(--muted);font-size:15px;line-height:1.6;margin:0 0 24px}.showcase-tool .showcase-actions{margin-top:auto}
.showcase-zeus{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin:58px 0;padding:38px;border:1px solid var(--border);border-radius:30px;background:var(--panel)}.zeus-bento{display:grid;grid-template-columns:1fr 1fr;gap:12px}.zeus-bento>div{padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--panel2)}.zeus-bento span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.zeus-bento strong{font-size:15px}
.showcase-footer{display:flex;justify-content:space-between;gap:20px;padding:28px 0 8px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.showcase-footer a{text-decoration:none;color:var(--text-soft)}
.password-wrap{position:relative}.password-wrap input{padding-right:58px}.password-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:42px;height:42px;min-height:0!important;margin:0!important;padding:0;border-radius:12px;background:transparent;border:0;color:var(--muted);font-size:20px}.password-eye:hover{color:var(--text);background:rgba(255,255,255,.04)}.login-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:-5px}.login-links a{font-size:13px;color:var(--primary);text-decoration:none}.login-links a:hover{text-decoration:underline}.alert.success{background:rgba(52,181,148,.11);border:1px solid rgba(52,181,148,.32);color:#b9f5e3}
@media(max-width:900px){.showcase-hero{grid-template-columns:1fr;min-height:auto;padding-top:50px}.showcase-grid{grid-template-columns:1fr}.showcase-zeus{grid-template-columns:1fr}.showcase-links>a:not(.button){display:none}}
@media(max-width:560px){.showcase-nav{padding:16px 18px}.showcase-main{padding:0 18px 28px}.showcase-brand .bolt{width:42px;height:42px}.showcase-brand b{font-size:13px}.showcase-links .button{padding:9px 10px;font-size:12px}.showcase-hero{padding:42px 0 28px;gap:28px}.hero-copy h1{font-size:43px}.hero-copy>p{font-size:16px}.hero-bento{padding:24px;border-radius:24px}.hero-stack{grid-template-columns:1fr;gap:3px}.hero-stack span{margin-bottom:12px}.showcase-section{padding:42px 0}.showcase-tool{padding:22px;min-height:300px}.showcase-zeus{padding:24px;margin:38px 0}.zeus-bento{grid-template-columns:1fr}.showcase-footer{flex-direction:column}.login-links{display:grid}}

.swiss-flag{display:inline-block;width:16px;height:16px;vertical-align:-3px;margin-right:7px;flex:none} /* v1.0.28-cl : drapeau SVG */


/* v1.0.10-op — Health Check style proche de Nexikos */
.nx-health-shell{display:grid;gap:18px}
.nx-health-overview{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 24px;border-color:#5b2c33;background:linear-gradient(180deg,#171b25,#141923)}
.nx-health-overview-main{display:flex;align-items:flex-start;gap:16px;min-width:0}
.nx-health-overview-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:900;background:rgba(106,43,51,.45);color:#ffc7cd;box-shadow:inset 0 0 0 1px rgba(255,180,186,.08)}
.nx-health-overview-icon.ok{background:rgba(40,154,127,.16);color:#8ff0d4}.nx-health-overview h2{margin:4px 0 6px;font-size:30px;letter-spacing:-.03em}.nx-health-overview-note{margin:7px 0 0;color:var(--muted);font-size:13px}
.nx-health-pillbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nx-health-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.02)}
.nx-health-pill strong{font-size:13px;line-height:1}.nx-health-pill em{font-style:normal;font-size:12px;font-weight:800;color:var(--text-soft)}
.nx-health-pill.ok{border-color:rgba(52,181,148,.38);background:rgba(40,154,127,.11)} .nx-health-pill.ok em,.nx-health-pill.ok strong{color:var(--ok)}
.nx-health-pill.warning{border-color:rgba(210,160,55,.35);background:rgba(210,160,55,.09)} .nx-health-pill.warning em,.nx-health-pill.warning strong{color:var(--warn)}
.nx-health-pill.error{border-color:rgba(255,107,120,.35);background:rgba(255,107,120,.09)} .nx-health-pill.error em,.nx-health-pill.error strong{color:#ff9aa3}
.nx-health-pill.info{border-color:rgba(111,127,155,.42);background:rgba(111,127,155,.10)} .nx-health-pill.info em,.nx-health-pill.info strong{color:#bdd0f1}
.nx-health-pill.total{border-color:#7d8696;background:rgba(255,255,255,.03)} .nx-health-pill.total em,.nx-health-pill.total strong{color:#fff}
.nx-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.nx-health-card{padding:0;overflow:hidden}
.nx-health-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,0))}
.nx-health-card-title{display:flex;align-items:center;gap:9px}.nx-health-card-title h3{margin:0;font-size:18px}.nx-health-head-dot{width:8px;height:8px;border-radius:999px;background:#6fa8ff}.nx-health-card-count{font-size:12px;color:var(--muted)}
.nx-health-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 18px;border-bottom:1px solid rgba(255,255,255,.04)}.nx-health-row:last-child{border-bottom:0}
.nx-health-left{display:flex;gap:12px;min-width:0}.nx-health-icon{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:900;flex:0 0 auto}.nx-health-icon.ok{background:rgba(40,154,127,.16);color:#8ff0d4}.nx-health-icon.warning{background:rgba(210,160,55,.11);color:var(--warn)}.nx-health-icon.error{background:rgba(255,107,120,.11);color:#ff9aa3}.nx-health-icon.info,.nx-health-icon.unknown{background:rgba(111,127,155,.12);color:#bdd0f1}
.nx-health-copy{min-width:0}.nx-health-name{font-weight:800;color:#fff;margin-bottom:4px}.nx-health-message{font-size:13px;line-height:1.45;color:var(--muted)}
.nx-health-right{display:grid;justify-items:end;gap:8px;flex:0 0 auto}.nx-health-link{text-decoration:none;font-size:12px;color:var(--primary)}.nx-health-link:hover{text-decoration:underline}
.nx-health-empty{padding:18px}
@media(max-width:980px){.nx-health-overview{display:grid}.nx-health-pillbar{justify-content:flex-start}.nx-health-grid{grid-template-columns:1fr}}
@media(max-width:560px){.nx-health-overview{padding:18px}.nx-health-overview h2{font-size:24px}.nx-health-row{display:grid}.nx-health-right{justify-items:start}.nx-health-pillbar{gap:8px}.nx-health-pill{padding:6px 10px}}


/* v1.0.11-op — Moniteur sessions style Nexikos */
.sessions-monitor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:8px 0 18px}.sessions-monitor-head h2{margin:7px 0 5px;font-size:28px;letter-spacing:-.025em}.show-expired{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--text-soft)}.show-expired input{width:auto}
.sessions-app-panel{padding:0;overflow:hidden}.sessions-app-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;border-bottom:1px solid var(--border)}.sessions-app-head h2{margin:0;font-size:21px}.sessions-app-head p{margin:4px 0 0}
.session-legend{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--border);color:var(--muted);font-size:13px}.session-state{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;padding:6px 11px;font-size:12px;font-weight:900;letter-spacing:.03em}.session-dot{width:10px;height:10px;border-radius:50%;background:#7a8698;box-shadow:0 0 0 4px rgba(122,134,152,.10)}.session-state.online{color:#63efc5;border-color:rgba(52,181,148,.35);background:rgba(52,181,148,.10)}.session-state.online .session-dot{background:#3ad3a5;box-shadow:0 0 0 4px rgba(58,211,165,.16)}.session-state.inactive{color:#ffc861;border-color:rgba(210,160,55,.35);background:rgba(210,160,55,.09)}.session-state.inactive .session-dot{background:#ffbf4d;box-shadow:0 0 0 4px rgba(255,191,77,.13)}.session-state.offline{color:#b5c0d2;background:rgba(111,127,155,.07)}
.sessions-table th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#8da0be}.sessions-table td{padding:16px 14px}.sessions-table td strong{display:block;font-size:15px}.sessions-table td small{display:block;color:var(--muted);margin-top:4px}.sessions-table .session-state{white-space:nowrap}
@media(max-width:980px){.sessions-monitor-head{display:grid}.show-expired{align-items:flex-start}.sessions-app-head{align-items:flex-start}.session-legend{align-items:flex-start}}


/* v1.0.12-op — actions Log-off / Locker sur les sessions */
.session-actions{display:flex;align-items:flex-start;gap:7px;justify-content:flex-end;min-width:170px}.session-actions form{margin:0}.session-lock{position:relative}.session-lock>summary{list-style:none;user-select:none}.session-lock>summary::-webkit-details-marker{display:none}.session-lock[open]>summary{filter:brightness(.92)}.session-lock-form{position:absolute;right:0;top:38px;z-index:30;width:290px;padding:14px;background:var(--panel3);border:1px solid var(--border-strong);border-radius:14px;box-shadow:var(--shadow);display:grid;gap:11px}.session-lock-form label{font-size:12px}.session-lock-form select,.session-lock-form input{min-height:39px;padding:8px 10px;border-radius:10px;font-size:13px}.session-lock-form button{width:100%}.sessions-table td:last-child{min-width:185px}.session-state.offline+.session-actions{opacity:.75}@media(max-width:760px){.session-actions{justify-content:flex-start}.session-lock-form{left:0;right:auto;width:min(290px,80vw)}}


/* v1.0.13-op — statistiques clients façon Super console Nexikos */
.org-stats-panel{padding:0;overflow:hidden}
.org-stats-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid var(--border)}
.org-stats-head h2{margin:7px 0 0;font-size:25px;letter-spacing:-.025em}
.org-stats-scroll{overflow:auto;max-width:100%}
.org-stats-table{min-width:1350px;font-size:13px}
.org-stats-table th{padding:14px 16px;color:#8fa2c1;text-transform:uppercase;letter-spacing:.06em;font-size:11px;white-space:nowrap;background:#141923;position:sticky;top:0;z-index:1}
.org-stats-table td{padding:17px 16px;white-space:nowrap}
.org-stats-table .org-name{min-width:180px;white-space:normal}
.org-stats-table .org-name strong{display:block;color:#fff;font-size:14px}
.org-stats-table .org-name small{display:block;color:var(--muted);margin-top:5px;font-size:12px}
.org-empty{text-align:center;color:var(--muted);padding:34px!important;white-space:normal!important}


/* ==========================================================================
   v1.0.14-op — Couche visuelle Nexikos
   Objectif : rapprocher Zeus de la Super console Nexikos sans créer de
   dépendance CSS/runtime entre les produits.
   ========================================================================== */

:root{
  --bg:#10151d;
  --sidebar:#0c1118;
  --panel:#121820;
  --panel2:#0d131b;
  --panel3:#171e28;
  --text:#f2f5fa;
  --text-soft:#d9e1ec;
  --muted:#8ea1c0;
  --muted2:#6e819f;
  --border:#26303d;
  --border-strong:#334154;
  --primary:#79b8ff;
  --primary-strong:#4f9ff8;
  --primary-soft:rgba(86,161,255,.10);
  --danger:#ef727d;
  --ok:#52dfb0;
  --warn:#ffc35e;
  --shadow:0 10px 34px rgba(0,0,0,.18);
  --radius:16px;
  --field-radius:12px;
}

html,body{
  background:var(--bg);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
}

/* Sidebar proche Nexikos */
body:not(.login-page):not(.showcase-page){grid-template-columns:236px minmax(0,1fr)}
aside{
  padding:18px 15px 16px;
  border-right:1px solid #25303d;
  background:#0c1118;
}
.brand{padding:3px 8px 20px;gap:12px}
.brand b{font-size:15px;font-weight:900;letter-spacing:.17em}
.brand small{font-size:12px;color:#8aa1c5}
.bolt{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(145deg,#d6e9ff,#78adf8);
  box-shadow:0 10px 26px rgba(65,130,220,.18);
}
nav{gap:3px}
.nav{
  min-height:44px;
  display:flex;align-items:center;
  padding:0 14px;border-radius:12px;
  font-size:14px;font-weight:800;color:#9aabc5;
}
.nav:hover{background:#141b24;color:#f4f7fb}
.nav.active{
  background:#191f29;color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035);
}
.aside-foot{
  border-top:1px solid var(--border);
  padding:15px 9px 4px;
  gap:8px;
}

/* Zone de travail */
main{padding:18px 24px 54px}
main>header{
  min-height:68px;
  margin:0 -24px 18px;
  padding:10px 24px 16px;
  border-bottom:1px solid var(--border);
}
main>header h1{
  font-size:29px;
  font-weight:900;
  letter-spacing:-.035em;
}
main>header p{font-size:13px;color:#87a2ca}
.theme{
  width:40px;height:40px;padding:0;border-radius:12px;
  background:#171e28;border-color:#2d3949;
}

/* Typographie / toolbar */
.toolbar{margin:4px 0 16px}
.toolbar h2{font-size:22px;font-weight:900}
.toolbar p{font-size:13px;line-height:1.5}
.eyebrow{font-size:10px;letter-spacing:.12em;color:#77b8ff}

/* Bentos Nexikos : plus compacts, bordure fine, pas d'ombre lourde */
.app-card,.panel{
  background:#121820;
  border:1px solid #25303d;
  border-radius:16px;
  box-shadow:none;
}
.panel{padding:18px 20px;margin:12px 0}
.app-card{padding:17px}
.app-card:hover{border-color:#344254}
.app-title h2{font-size:17px;font-weight:900}

/* Boutons */
.button,button{
  min-height:36px;
  padding:7px 12px;
  border-radius:10px;
  border:1px solid #303c4d;
  background:#19212c;
  color:#eef3fa;
  font-size:13px;
  font-weight:800;
}
.button:hover,button:hover{border-color:#46576d;filter:none;background:#1d2733}
.primary{
  background:#7ab9ff;color:#07101d;border-color:#7ab9ff;
}
.primary:hover{background:#91c5ff}
.danger{background:#7c313a;border-color:#8f3d47;color:#ffdfe2}
.ghost{background:transparent}

/* Pills état façon Nexikos */
.badge{
  min-height:24px;
  padding:3px 9px;
  gap:5px;
  border-radius:999px;
  font-size:10px;
  letter-spacing:.02em;
  font-weight:900;
  text-transform:none;
}
.badge.ok{background:rgba(33,147,118,.10);border-color:rgba(61,207,166,.24);color:#60e3bb}
.badge.warning{background:rgba(198,137,41,.10);border-color:rgba(255,190,82,.25);color:#ffc765}
.badge.error{background:rgba(182,58,72,.10);border-color:rgba(239,114,125,.27);color:#ff969e}
.badge.unknown{background:rgba(97,117,151,.10);border-color:rgba(139,160,194,.23);color:#a8b7cf}
.env{border-radius:7px;padding:4px 7px;font-size:10px}

/* Tabs / switches */
.tabs{
  gap:18px;
  margin-bottom:14px;
  border-bottom:1px solid #25303d;
}
.tab{
  padding:11px 2px 10px;
  font-size:13px;
  font-weight:800;
}
.tab.active{border-color:#79b8ff;color:#fff}
.env-switch{
  border-radius:10px;border-color:#2c3746;background:#0e141c;
}
.env-switch a{padding:8px 12px;font-size:12px}

/* Sélecteur des apps */
.app-switcher{gap:8px;margin-bottom:14px}
.app-switch{
  padding:11px 13px;border-radius:12px;
  background:#0f151d;border-color:#273241;
  font-size:13px;
}
.app-switch.active{
  background:#19212b;border-color:#3a495c;
  box-shadow:none;
}

/* Tableaux identiques au ton Nexikos */
.table-wrap{border-radius:12px}
table{font-size:13px}
th{
  padding:11px 12px;
  color:#8da1c0;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:#111720;
}
td{padding:13px 12px;color:#e7edf6}
th,td{border-bottom:1px solid #222c38}
tbody tr:hover td{background:rgba(255,255,255,.012)}

/* Formulaires */
input,select,textarea{
  background:#0c1219;
  border:1px solid #2a3442;
  color:#f2f5fa;
  border-radius:12px;
  padding:10px 12px;
}
input:focus,select:focus,textarea:focus{
  border-color:#55789f;
  box-shadow:0 0 0 3px rgba(96,157,228,.08);
  background:#0d141c;
}
label{color:#d8e0eb;font-size:13px}

/* Bentos config : mêmes proportions que la Super console Nexikos */
.nexikos-config-bento{
  padding:22px 24px 20px;
  border-radius:18px;
  background:#121820;
}
.config-bento-head h2{font-size:24px;margin:6px 0 6px}
.config-bento-head p{font-size:14px}
.config-divider{margin:18px 0 20px}
.config-grid{gap:16px 18px}
.config-label label{font-size:14px}
.config-field input,.config-field select{
  min-height:50px;border-radius:12px;font-size:14px;
}
.config-save,.config-inherit{min-height:50px;border-radius:10px}
.config-note{font-size:13px;margin-top:20px;padding:15px 4px 2px}

/* Health Check : rapprochement de la capture Nexikos */
.nx-health-overview{
  padding:15px 18px;
  border-radius:15px;
  background:#151821;
}
.nx-health-overview h2{font-size:20px;margin:2px 0 4px}
.nx-health-overview-icon{width:30px;height:30px;border-radius:9px}
.nx-health-pill{padding:5px 10px}
.nx-health-pill strong{font-size:11px}
.nx-health-pill em{font-size:10px}
.nx-health-grid{gap:10px}
.nx-health-card{border-radius:14px}
.nx-health-card-head{padding:10px 13px}
.nx-health-card-title h3{font-size:13px}
.nx-health-card-count{font-size:10px}
.nx-health-row{padding:12px 13px}
.nx-health-name{font-size:12px}
.nx-health-message{font-size:11px}
.nx-health-icon{width:23px;height:23px;border-radius:8px;font-size:12px}
.nx-health-link{font-size:10px}

/* Users / sessions */
.connection-app-section{
  border:1px solid #25303d!important;
  border-radius:16px!important;
  background:#121820!important;
  box-shadow:none!important;
}
.connection-app-head{border-bottom:1px solid #25303d!important}
.connection-legend{gap:10px!important}
.online-pill,.inactive-pill,.offline-pill{
  min-height:28px!important;
  border-radius:999px!important;
  font-size:11px!important;
  font-weight:900!important;
}
.session-actions summary,.session-actions button{font-size:12px}

/* Statistiques sociétés */
.org-stats-panel{border-radius:16px}
.org-stats-head{padding:16px 18px}
.org-stats-head h2{font-size:20px}
.org-stats-table th{
  background:#111720;
  color:#8fa2c1;
  padding:11px 13px;
}
.org-stats-table td{padding:14px 13px}
.org-stats-table .org-name strong{font-size:13px}

/* Login = bento central proche Nexikos */
body.login-page{
  background:#10151d;
}
.login-card{
  width:min(470px,100%);
  padding:28px 30px 30px;
  background:#121820;
  border:1px solid #293544;
  border-radius:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
}
.login-card:before{font-size:10px}
.login-card h1{font-size:25px}
.login-card input{min-height:50px;border-radius:12px}
.login-card button{min-height:44px;border-radius:10px}

/* Page commerciale conserve la personnalité Toolbox mais utilise la même matière */
.showcase-nav{background:rgba(12,17,24,.96);border-color:#26303d}
.hero-bento,.showcase-tool,.showcase-zeus{
  background:#121820;border-color:#26303d;box-shadow:none;
}
.showcase-tool{border-radius:18px}
.hero-bento,.showcase-zeus{border-radius:20px}
.zeus-bento>div{border-radius:13px;background:#0f151d}

/* Responsive */
@media(max-width:760px){
  main{padding:16px}
  main>header{margin:0 -16px 16px;padding:8px 16px 13px}
  nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .nav{justify-content:center}
}
@media(max-width:560px){
  .panel{padding:15px}
  .nexikos-config-bento{padding:17px 15px}
  .login-card{padding:24px 20px}
}


/* v1.0.15-op — chemins explicites pour clonage PROD → CTLQ */
.clone-panel{border-color:#5d3037}
.clone-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.clone-head h2{margin:5px 0 6px;font-size:22px}
.clone-paths{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);gap:12px;align-items:stretch;margin:16px 0}
.clone-path-card{padding:15px 16px;border:1px solid var(--border);border-radius:14px;background:var(--panel2);min-width:0}
.clone-path-card.prod{border-color:rgba(239,114,125,.24)}
.clone-path-card.ctlq{border-color:rgba(121,184,255,.24)}
.clone-path-title{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.clone-path-title strong{margin-right:auto}
.clone-path{display:block;width:100%;padding:11px 12px;border-radius:10px;background:#090e14;border:1px solid #242f3d;color:#dce7f7;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.45}
.clone-path-card small{display:block;margin-top:8px;color:var(--muted);font-size:11px}
.clone-arrow{display:grid;place-items:center;color:var(--primary);font-size:24px;font-weight:900}
.clone-backup{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid var(--border);margin-bottom:14px}
.clone-backup strong{font-size:12px}
.clone-backup code{color:#a9bad2;font-size:11px;overflow-wrap:anywhere}
.clone-form button[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:850px){.clone-paths{grid-template-columns:1fr}.clone-arrow{transform:rotate(90deg);min-height:24px}.clone-backup{grid-template-columns:1fr}}


/* v1.0.16-op — URLs PROD / CTLQ configurables par produit */
.product-url-bento{border-color:#2b3b50}
.product-url-form{display:grid;gap:18px}
.product-url-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.product-url-grid label{display:grid;gap:8px}
.product-url-grid label>span{display:flex;align-items:center;gap:8px;font-weight:850}
.product-commercial-url{grid-column:1/-1}
.url-input-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.url-input-actions input{min-height:50px}
.url-input-actions .button{display:flex;align-items:center;justify-content:center;white-space:nowrap}
.product-url-grid small{color:var(--muted);font-weight:500;font-size:11px}
.product-url-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px;border-top:1px solid var(--border)}
.product-url-footer p{margin:0;max-width:760px}
.app-runtime-links{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}
.app-runtime-links .button{font-size:11px;min-height:30px;padding:5px 9px}
@media(max-width:820px){.product-url-grid{grid-template-columns:1fr}.product-commercial-url{grid-column:auto}.product-url-footer{align-items:stretch;flex-direction:column}.url-input-actions{grid-template-columns:1fr}.url-input-actions .button{min-height:38px}}


/* v1.0.17-op — version visible en permanence */
.page-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.page-title-row h1{margin:0}
.version-badge{
  display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;
  border:1px solid #334154;border-radius:999px;background:#171e28;
  color:#9db4d4;font-size:10px;font-weight:900;letter-spacing:.03em
}
.zeus-version{
  display:inline-flex;align-items:center;width:max-content;
  padding:4px 8px;border-radius:999px;border:1px solid #293646;
  background:#111821;color:#89a4ca;font-size:10px;font-weight:900
}


/* v1.0.18-op — thème clair/sombre fonctionnel + version Zeus */
.brand-version{
  display:block;margin-top:4px;color:#6f88aa;font-size:9px;font-weight:900;
  letter-spacing:.04em
}
.dashboard-zeus-version{
  display:inline-flex;align-items:center;gap:7px;margin-top:8px;
  padding:4px 8px;border:1px solid #2e3a4b;border-radius:999px;
  background:#111821;color:#8da7ca;font-size:10px;font-weight:800
}
.dashboard-zeus-version span{letter-spacing:.12em;color:#74b5ff}
.dashboard-zeus-version strong{color:#dbe7f7}
.theme{
  display:grid;place-items:center;font-size:18px;line-height:1;
  cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s
}
.theme:hover{transform:translateY(-1px)}
.theme:focus-visible{outline:2px solid #79b8ff;outline-offset:2px}

/* Le bouton était présent mais le thème clair n'avait aucun style associé.
   Ces overrides rendent maintenant le toggle visible et cohérent. */
html.light{
  --bg:#eef3f8;
  --sidebar:#f7f9fc;
  --panel:#ffffff;
  --panel2:#f7f9fc;
  --panel3:#edf2f7;
  --text:#182231;
  --text-soft:#33435a;
  --muted:#667892;
  --muted2:#7f8fa5;
  --border:#d9e1eb;
  --border-strong:#c5d0de;
  --primary:#2878d0;
  --primary-strong:#1d69bb;
  --primary-soft:rgba(40,120,208,.09);
  --shadow:0 10px 28px rgba(40,60,85,.08);
}
html.light body{background:#eef3f8;color:#182231}
html.light aside{background:#f7f9fc;border-right-color:#d9e1eb}
html.light .brand b,
html.light main>header h1,
html.light .toolbar h2,
html.light .app-title h2,
html.light .config-bento-head h2,
html.light .nx-health-copy .nx-health-name,
html.light .org-stats-table .org-name strong{color:#182231}
html.light .brand small,
html.light .aside-foot,
html.light main>header p,
html.light .muted,
html.light .source,
html.light .nx-health-message,
html.light .nx-health-card-count,
html.light .product-url-grid small{color:#687b96}
html.light .nav{color:#657891}
html.light .nav:hover,
html.light .nav.active{background:#e9eff6;color:#182231}
html.light .aside-foot{border-top-color:#d9e1eb}
html.light main>header{border-bottom-color:#d9e1eb}
html.light .theme{
  background:#fff;border-color:#ccd7e4;color:#24354b
}
html.light .theme:hover{background:#f2f6fa;border-color:#aebdce}
html.light .app-card,
html.light .panel,
html.light .nexikos-config-bento,
html.light .connection-app-section,
html.light .hero-bento,
html.light .showcase-tool,
html.light .showcase-zeus{
  background:#fff!important;border-color:#d9e1eb!important;color:#182231;box-shadow:none
}
html.light .app-card:hover{border-color:#bdc9d7!important}
html.light .button,
html.light button{
  background:#edf2f7;border-color:#ccd6e2;color:#24354b
}
html.light .button:hover,
html.light button:hover{background:#e4ebf3;border-color:#b8c5d4}
html.light .primary{background:#5fa5ef;border-color:#5fa5ef;color:#07101d}
html.light .ghost{background:transparent}
html.light .tabs{border-bottom-color:#d8e0ea}
html.light .tab{color:#6a7b93}
html.light .tab.active{color:#182231;border-color:#2878d0}
html.light .env-switch{background:#f3f6f9;border-color:#d2dce8}
html.light .app-switch{
  background:#f7f9fc;border-color:#d5dee9;color:#667892
}
html.light .app-switch.active{background:#e9eff6;border-color:#bdcad9;color:#182231}
html.light input,
html.light select,
html.light textarea{
  background:#fff;border-color:#ccd7e3;color:#182231
}
html.light input:focus,
html.light select:focus,
html.light textarea:focus{
  background:#fff;border-color:#6d9ed1;box-shadow:0 0 0 3px rgba(40,120,208,.08)
}
html.light input::placeholder,
html.light textarea::placeholder{color:#98a6b8}
html.light label{color:#33435a}
html.light table{color:#24354b}
html.light th{
  background:#f3f6f9;color:#60738f;border-bottom-color:#d7e0ea
}
html.light td{color:#24354b;border-bottom-color:#e2e8ef}
html.light tbody tr:hover td{background:#f7f9fc}
html.light .nx-health-overview{background:#fff;border-color:#e0c9cc}
html.light .nx-health-card-head{background:#f8fafc;border-bottom-color:#dfe6ee}
html.light .nx-health-row{border-bottom-color:#e6ebf1}
html.light .clone-path-card{background:#f7f9fc;border-color:#d4dee9}
html.light .clone-path{background:#fff;border-color:#d4dee9;color:#24354b}
html.light .clone-backup{background:#f7f9fc;border-color:#d4dee9}
html.light .config-field input,
html.light .config-field select{background:#fff;border-color:#ccd7e3}
html.light .config-note{border-top-color:#dbe3ec;color:#33435a}
html.light .version-badge,
html.light .zeus-version,
html.light .dashboard-zeus-version{
  background:#edf3f9;border-color:#ccd8e5;color:#516983
}
html.light .version-badge strong,
html.light .dashboard-zeus-version strong{color:#24354b}
html.light .brand-version{color:#6683a7}
html.light code{color:#30445e}


/* v1.0.19-op — Health Check calé sur la Super console Nexikos */
.nxhc-shell{display:grid;gap:10px}
.nxhc-global{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:92px;padding:14px 16px;
  border:1px solid #5b2e35;border-radius:14px;
  background:#151820;
}
.nxhc-global.ok{border-color:#28493f}
.nxhc-global.warning{border-color:#65502e}
.nxhc-global.info{border-color:#334155}
.nxhc-global-main{display:flex;align-items:center;gap:14px;min-width:0}
.nxhc-global-icon{
  width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;
  border-radius:9px;background:#352128;color:#ff9da6;font-weight:900;font-size:14px
}
.nxhc-global-icon.ok{background:#16342d;color:#63e5bd}
.nxhc-global-icon.warning{background:#3d311d;color:#ffc765}
.nxhc-global-icon.info{background:#1d2b3c;color:#9fc4f1}
.nxhc-kicker{
  margin-bottom:2px;color:#7f8da4;font-size:9px;font-weight:900;
  letter-spacing:.08em;text-transform:uppercase
}
.nxhc-global h2{margin:0;color:#f5f7fb;font-size:17px;font-weight:900;letter-spacing:-.015em}
.nxhc-global-message,.nxhc-global-meta{margin:4px 0 0;color:#8ea1c0;font-size:10px;line-height:1.4}
.nxhc-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.nxhc-filter{
  min-height:32px!important;padding:5px 10px!important;
  display:inline-flex!important;align-items:center!important;gap:8px!important;
  border-radius:999px!important;background:#151b24!important;
  border:1px solid #2d3948!important;color:#bdc9d9!important;
  font-size:10px!important;font-weight:900!important
}
.nxhc-filter strong{font-size:11px}
.nxhc-filter.ok strong,.nxhc-filter.ok span{color:#63e5bd}
.nxhc-filter.warning strong,.nxhc-filter.warning span{color:#ffc765}
.nxhc-filter.error strong,.nxhc-filter.error span{color:#ff969f}
.nxhc-filter.info strong,.nxhc-filter.info span{color:#9fbbdf}
.nxhc-filter.active{box-shadow:inset 0 0 0 1px #9aa9bc;background:#1b222c!important}
.nxhc-filter.all.active{color:#fff!important;border-color:#8996a8!important}

.nxhc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nxhc-group{
  overflow:hidden;border:1px solid #26303d;border-radius:13px;background:#111720;
}
.nxhc-group-head{
  height:34px;display:flex;align-items:center;justify-content:space-between;
  padding:0 11px;border-bottom:1px solid #26303d;background:#131a22;
}
.nxhc-group-head>div{display:flex;align-items:center;gap:7px}
.nxhc-group-head strong{color:#eef3f9;font-size:11px;font-weight:900}
.nxhc-group-head small{color:#8495ae;font-size:9px}
.nxhc-group-dot{width:7px;height:7px;border-radius:50%;background:#61aef9;box-shadow:0 0 0 3px rgba(97,174,249,.08)}
.nxhc-group-body{display:grid}
.nxhc-row{
  position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) auto;
  gap:9px;align-items:start;padding:11px 11px 10px;
  border-bottom:1px solid #202a35;
}
.nxhc-row:last-child{border-bottom:0}
.nxhc-row[hidden]{display:none!important}
.nxhc-icon{
  width:22px;height:22px;display:grid;place-items:center;margin-top:1px;
  border-radius:7px;background:#17342d;color:#60e3bb;font-size:11px;font-weight:900
}
.nxhc-icon.warning{background:#3b301e;color:#ffc765}
.nxhc-icon.error{background:#352127;color:#ff969f}
.nxhc-icon.info{background:#1c2a3a;color:#a5c4e8}
.nxhc-copy{min-width:0}
.nxhc-label{margin-bottom:3px;color:#dce5f1;font-size:10px;font-weight:850}
.nxhc-value{color:#f7f9fc;font-size:12px;font-weight:900;line-height:1.3}
.nxhc-detail{margin-top:4px;color:#8296b5;font-size:9px;line-height:1.45}
.nxhc-detail-link{
  display:inline-block;margin-top:6px;color:#72b7fb;text-decoration:none;
  font-size:9px;font-weight:650
}
.nxhc-detail-link:hover{text-decoration:underline}
.nxhc-state{padding-top:0;white-space:nowrap}
.nxhc-state .badge{min-height:18px;padding:2px 6px;font-size:8px}
.nxhc-empty{grid-column:1/-1;padding:18px;color:var(--muted)}

html.light .nxhc-global,
html.light .nxhc-group{background:#fff;border-color:#d8e1eb}
html.light .nxhc-group-head{background:#f6f8fb;border-color:#d8e1eb}
html.light .nxhc-global h2,
html.light .nxhc-group-head strong,
html.light .nxhc-value{color:#172230}
html.light .nxhc-label{color:#34465d}
html.light .nxhc-global-message,
html.light .nxhc-global-meta,
html.light .nxhc-detail,
html.light .nxhc-group-head small{color:#667b98}
html.light .nxhc-row{border-color:#e4e9ef}
html.light .nxhc-filter{background:#f5f8fb!important;border-color:#d2dce8!important;color:#536982!important}
html.light .nxhc-filter.active{background:#eaf0f6!important}

@media(max-width:980px){
  .nxhc-global{align-items:flex-start;display:grid}
  .nxhc-filters{justify-content:flex-start}
  .nxhc-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .nxhc-global{padding:12px}
  .nxhc-filter{padding:5px 8px!important}
  .nxhc-row{grid-template-columns:22px minmax(0,1fr)}
  .nxhc-state{grid-column:2;justify-self:start}
}

/* ==========================================================================
   v1.0.20-cl — Unité graphique Nexikos
   Gabarit identique à la Super console Nexikos (superadmin.php) :
   barre supérieure .sa-top, en-tête .sa-hero, onglets .sa-view-tabs,
   panneaux .panel ≈ .sa-panel, boutons ≈ .sa-btn. Valeurs relevées sur
   nexikos-superadmin.css ; aucune dépendance CSS/runtime vers Nexikos.
   ========================================================================== */
:root{
  --nx-bg:#0b0e14;--nx-panel:#12161f;--nx-panel2:#171c27;--nx-field:#0f131b;
  --nx-ink:#edf0f7;--nx-muted:#8e98aa;--nx-label:#b9c0cf;--nx-line:rgba(255,255,255,.09);--nx-line-soft:rgba(255,255,255,.06);
  --nx-primary:#4c8dff;--nx-primary2:#3478f6;--nx-link:#9ec1ff;
  --nx-ok-ink:#8de8c4;--nx-warn-ink:#ffd38a;--nx-bad-ink:#ffaaaa;
  --nx-top:rgba(11,14,20,.94);--nx-hero:linear-gradient(135deg,rgba(76,141,255,.12),rgba(76,141,255,.05));
  --nx-tabs:rgba(17,24,39,.68);--nx-tabs-line:rgba(148,163,184,.14);--nx-tab:#94a3b8;--nx-tab-hover:#e5edf8;--nx-tab-active:#f8fbff;
  --nx-wordmark:linear-gradient(180deg,#ffffff 0%,#dbe8ff 70%,#b9d0ff 100%);
  /* Les couches précédentes lisent ces jetons : on les aligne sur Nexikos. */
  --bg:#0b0e14;--panel:#12161f;--panel2:#0f131b;--panel3:#171c27;--text:#edf0f7;--text-soft:#d5dbe6;
  --muted:#8e98aa;--muted2:#6f7a8e;--border:rgba(255,255,255,.09);--border-strong:rgba(255,255,255,.16);
  --primary:#9ec1ff;--primary-strong:#4c8dff;--primary-soft:rgba(76,141,255,.13);
  --ok:#37d399;--warn:#f5a623;--danger:#ff6b6b;--radius:20px;--field-radius:10px;
}
html.light{
  --nx-bg:#eef3f8;--nx-panel:#ffffff;--nx-panel2:#f3f6fa;--nx-field:#ffffff;
  --nx-ink:#182231;--nx-muted:#667892;--nx-label:#33435a;--nx-line:#d9e1eb;--nx-line-soft:#e6ebf1;
  --nx-primary:#2f7be8;--nx-primary2:#1f68d6;--nx-link:#1f68d6;
  --nx-ok-ink:#0f8a5f;--nx-warn-ink:#9a5b00;--nx-bad-ink:#c43d3d;
  --nx-top:rgba(255,255,255,.92);--nx-hero:linear-gradient(135deg,rgba(47,123,232,.10),rgba(47,123,232,.03));
  --nx-tabs:#ffffff;--nx-tabs-line:#d9e1eb;--nx-tab:#657891;--nx-tab-hover:#182231;--nx-tab-active:#182231;
  --nx-wordmark:linear-gradient(180deg,#182231 0%,#24406b 100%);
  --bg:#eef3f8;--panel:#ffffff;--panel2:#f7f9fc;--panel3:#edf2f7;--text:#182231;--text-soft:#33435a;
  --muted:#667892;--muted2:#7f8fa5;--border:#d9e1eb;--border-strong:#c5d0de;
  --primary:#1f68d6;--primary-strong:#2f7be8;--primary-soft:rgba(47,123,232,.09);
}
html,body{background:var(--nx-bg);color:var(--nx-ink)}

/* Logo Zeus : pictogramme dégradé + wordmark, même grammaire que le logo Nexikos */
.zeus-logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;line-height:1}
.zeus-logo img{width:34px;height:34px;display:block;filter:drop-shadow(0 4px 12px rgba(47,134,255,.28))}
.zeus-wordmark{font-size:25px;font-weight:900;letter-spacing:-.03em;background:var(--nx-wordmark);-webkit-background-clip:text;background-clip:text;color:transparent}
.zeus-logo.big img{width:46px;height:46px}
.zeus-logo.big .zeus-wordmark{font-size:34px}

/* Gabarit console : plus de sidebar, comme la Super console Nexikos */
body.nx-shell{display:block;min-height:100vh;font-size:14px;letter-spacing:normal}
body.nx-shell .sa-top{height:72px;margin:0;padding:0 28px;border-bottom:1px solid var(--nx-line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--nx-top);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:20}
body.nx-shell .sa-brand{display:flex;align-items:center;gap:18px;min-width:0}
body.nx-shell .sa-brand-home{text-decoration:none}
body.nx-shell .sa-brand>div span,body.nx-shell .sa-brand>div strong{display:block}
body.nx-shell .sa-brand>div span{font-size:10px;color:var(--nx-muted);text-transform:uppercase;letter-spacing:.08em}
body.nx-shell .sa-brand>div strong{font-size:13px;margin-top:2px;color:var(--nx-ink)}
.sa-version-chip{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid rgba(125,183,240,.24);border-radius:999px;color:#9fc8ee;background:rgba(57,127,194,.10);font-size:10px;font-weight:800;letter-spacing:.04em;white-space:nowrap}
html.light .sa-version-chip{color:#3f6690;background:#edf3f9;border-color:#ccd8e5}
body.nx-shell .sa-user{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--nx-muted)}
body.nx-shell .sa-user .theme{width:34px;padding:7px 0;font-size:14px;transform:none}

body.nx-shell .sa-main{max-width:1440px;margin:0 auto;padding:28px;min-width:0}
body.nx-shell .sa-hero{border:1px solid var(--nx-line);border-radius:17px;padding:14px 18px;background:var(--nx-hero);display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px}
body.nx-shell .sa-hero h1{font-size:23px;line-height:1.15;margin:3px 0 2px;letter-spacing:-.01em;color:var(--nx-ink)}
body.nx-shell .sa-hero p{font-size:11.5px;line-height:1.4;max-width:850px;color:var(--nx-muted);margin:0}
.sa-kicker,body.nx-shell .eyebrow{display:inline-block;color:var(--nx-link);text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:800}
body.nx-shell .sa-hero .sa-kicker{font-size:9px}
body.nx-shell .sa-storage-badge{padding:8px 11px;border:1px solid var(--nx-line);border-radius:12px;background:rgba(0,0,0,.18);min-width:190px}
html.light body.nx-shell .sa-storage-badge{background:rgba(255,255,255,.7)}
body.nx-shell .sa-storage-badge span,body.nx-shell .sa-storage-badge strong{display:block}
body.nx-shell .sa-storage-badge span{color:var(--nx-muted);font-size:9px}
body.nx-shell .sa-storage-badge strong{font-size:11px;margin-top:2px;white-space:nowrap;color:var(--nx-ink)}

body.nx-shell .sa-view-tabs{display:flex;gap:8px;align-items:center;margin:-2px 0 14px;padding:5px;border:1px solid var(--nx-tabs-line);border-radius:14px;background:var(--nx-tabs);width:max-content;max-width:100%}
body.nx-shell .sa-view-tab{appearance:none;border:0;background:transparent;color:var(--nx-tab);border-radius:10px;padding:9px 13px;font-size:16px;font-weight:800;cursor:pointer;display:inline-flex;gap:8px;align-items:center;text-decoration:none;white-space:nowrap}
body.nx-shell .sa-view-tab:hover{color:var(--nx-tab-hover);background:rgba(255,255,255,.035)}
html.light body.nx-shell .sa-view-tab:hover{background:#f2f6fa}
body.nx-shell .sa-view-tab.active{color:var(--nx-tab-active);background:rgba(79,140,255,.14);box-shadow:inset 0 0 0 1px rgba(79,140,255,.22)}

/* Boutons = .sa-btn */
.sa-btn,body.nx-shell button,body.nx-shell .button,body.sa-login button{border:1px solid var(--nx-line);background:var(--nx-panel2);color:var(--nx-ink);padding:9px 13px;border-radius:10px;font:inherit;font-size:13px;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:none}
.sa-btn:hover,body.nx-shell button:hover,body.nx-shell .button:hover{border-color:var(--border-strong);background:var(--nx-panel2)}
.sa-btn.ghost,body.nx-shell button.ghost,body.nx-shell .button.ghost{background:transparent}
.sa-btn.compact,body.nx-shell .compact{padding:7px 10px;font-size:12px}
body.nx-shell button.primary,body.nx-shell .button.primary,body.sa-login button.primary,.sa-btn.primary{background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary2));border:0;color:#fff}
body.nx-shell button.primary:hover,body.nx-shell .button.primary:hover,body.sa-login button.primary:hover{filter:brightness(1.07);background:linear-gradient(135deg,var(--nx-primary),var(--nx-primary2))}
body.nx-shell button.danger,body.nx-shell .button.danger{background:rgba(255,107,107,.12);border-color:rgba(239,68,68,.42);color:#fecaca}
html.light body.nx-shell button.danger,html.light body.nx-shell .button.danger{color:#b42323;background:#fdecec;border-color:#f3b4b4}
body.nx-shell button:disabled,body.nx-shell button[disabled]{opacity:.45;cursor:not-allowed;filter:saturate(.4)}
html.light .sa-btn,html.light body.nx-shell button:not(.primary):not(.danger),html.light body.nx-shell .button:not(.primary):not(.danger){background:var(--nx-panel2);border-color:var(--nx-line);color:var(--nx-ink)}
html.light .sa-btn.ghost,html.light body.nx-shell .ghost{background:transparent}

/* Panneaux = .sa-panel */
body.nx-shell .panel,body.nx-shell .app-card{background:var(--nx-panel);border:1px solid var(--nx-line);border-radius:20px;box-shadow:none}
body.nx-shell .panel{padding:18px;margin:0 0 14px}
body.nx-shell .app-card{padding:16px;border-radius:16px}
body.nx-shell .panel h2,body.nx-shell .app-title h2{font-size:17px;letter-spacing:-.01em;margin:0 0 10px}
body.nx-shell .app-title h2{margin:0}
body.nx-shell .toolbar{margin:4px 0 14px}
body.nx-shell .toolbar h2{font-size:20px;letter-spacing:-.01em}
body.nx-shell .grid.apps{gap:12px;margin-bottom:14px}
body.nx-shell .muted{color:var(--nx-muted)}
body.nx-shell a.table-link{color:var(--nx-link)}

/* Onglets secondaires, switch PROD/CTLQ et choix de l’app : même matière que .sa-view-tabs */
body.nx-shell .tabs{display:flex;gap:6px;width:max-content;max-width:100%;margin:0 0 14px;padding:4px;border:1px solid var(--nx-tabs-line);border-radius:12px;background:var(--nx-tabs);overflow:auto}
body.nx-shell .tab{border:0;border-radius:9px;padding:7px 12px;color:var(--nx-tab);font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap;margin:0}
body.nx-shell .tab:hover{color:var(--nx-tab-hover)}
body.nx-shell .tab.active{color:var(--nx-tab-active);background:rgba(79,140,255,.14);box-shadow:inset 0 0 0 1px rgba(79,140,255,.22);border:0}
body.nx-shell .env-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--nx-tabs-line);border-radius:12px;background:var(--nx-tabs)}
body.nx-shell .env-switch a{border-radius:9px;padding:7px 12px;font-size:12px;font-weight:800;color:var(--nx-tab);text-decoration:none}
body.nx-shell .env-switch a.active.prod{color:#ffb4b4;background:rgba(255,107,107,.13);box-shadow:inset 0 0 0 1px rgba(255,107,107,.28)}
body.nx-shell .env-switch a.active.ctlq{color:#bfd6ff;background:rgba(79,140,255,.14);box-shadow:inset 0 0 0 1px rgba(79,140,255,.26)}
html.light body.nx-shell .env-switch a.active.prod{color:#b42323;background:#fdecec}
html.light body.nx-shell .env-switch a.active.ctlq{color:#1f5fb8;background:#e8f1fd}
body.nx-shell .app-switcher{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
body.nx-shell .app-switch{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid var(--nx-line);border-radius:10px;background:var(--nx-panel);color:var(--nx-tab);font-size:13px;font-weight:800;text-decoration:none}
body.nx-shell .app-switch:hover{color:var(--nx-tab-hover);border-color:var(--border-strong)}
body.nx-shell .app-switch.active{color:var(--nx-tab-active);background:rgba(79,140,255,.14);border-color:rgba(79,140,255,.32)}

/* Formulaires = .sa-form */
body.nx-shell label,body.sa-login label{font-size:12px;font-weight:700;color:var(--nx-label)}
body.nx-shell input:not([type=checkbox]):not([type=radio]),body.nx-shell select,body.nx-shell textarea,body.sa-login input:not([type=checkbox]){padding:10px 11px;border-radius:10px;border:1px solid var(--nx-line);background:var(--nx-field);color:var(--nx-ink);outline:none;font:inherit;font-size:13px;box-shadow:none}
body.nx-shell input:focus,body.nx-shell select:focus,body.nx-shell textarea:focus,body.sa-login input:focus{border-color:var(--nx-primary);box-shadow:0 0 0 3px rgba(76,141,255,.16)}

/* Tableaux = tables de la Super console */
body.nx-shell table{border-collapse:collapse;width:100%;background:transparent;font-size:12.5px}
body.nx-shell th{background:transparent;color:var(--nx-muted);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:1px solid var(--nx-line);text-align:left}
body.nx-shell td{padding:10px;border-bottom:1px solid var(--nx-line-soft);color:var(--nx-ink);background:transparent}
body.nx-shell tbody tr:hover td{background:rgba(255,255,255,.018)}
html.light body.nx-shell th{background:transparent;color:#60738f;border-bottom-color:#d7e0ea}
html.light body.nx-shell tbody tr:hover td{background:#f7f9fc}
body.nx-shell .table-wrap{border:0;background:transparent}

/* Pills d’état et alertes = .sa-alert */
body.nx-shell .badge.ok{color:var(--nx-ok-ink);background:rgba(55,211,153,.12);border-color:rgba(55,211,153,.28)}
body.nx-shell .badge.warning{color:var(--nx-warn-ink);background:rgba(245,166,35,.12);border-color:rgba(245,166,35,.30)}
body.nx-shell .badge.error{color:var(--nx-bad-ink);background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.30)}
body.nx-shell .badge.unknown,body.nx-shell .badge.info{color:var(--nx-muted);background:rgba(148,163,184,.10);border-color:rgba(148,163,184,.22)}
.nx-shell .alert,.sa-login .alert{padding:10px 12px;border-radius:10px;margin:12px 0;font-size:12px;border:0}
.nx-shell .alert.error,.sa-login .alert.error{background:rgba(255,107,107,.12);color:var(--nx-bad-ink)}
.nx-shell .alert.success,.sa-login .alert.success{background:rgba(55,211,153,.12);color:var(--nx-ok-ink)}
body.nx-shell code{color:var(--nx-label)}

/* Connexion = .sa-login de Nexikos */
body.sa-login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 50% -15%,rgba(76,141,255,.22),transparent 45%),var(--nx-bg)}
html.light body.sa-login{background:radial-gradient(circle at 50% -15%,rgba(47,123,232,.16),transparent 45%),var(--nx-bg)}
body.sa-login .sa-login-box{width:min(440px,92vw);max-width:none;padding:30px;border:1px solid var(--nx-line);border-radius:22px;background:var(--nx-panel);box-shadow:0 30px 80px rgba(0,0,0,.45)}
html.light body.sa-login .sa-login-box{box-shadow:0 24px 60px rgba(40,60,85,.12)}
body.sa-login .sa-login-brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px}
body.sa-login h1{margin:8px 0 6px;font-size:26px;letter-spacing:-.01em;color:var(--nx-ink)}
body.sa-login p.muted{color:var(--nx-muted);line-height:1.55;font-size:14px;margin:0 0 6px}
body.sa-login form label{display:grid;gap:6px;margin-top:14px}
body.sa-login form>button.primary{width:100%;margin-top:20px;padding:11px 13px}
body.sa-login .login-links{display:flex;justify-content:flex-end;margin-top:10px;font-size:12px}
body.sa-login .login-links a,body.sa-login .sa-login-links a{color:var(--nx-link);text-decoration:none}
body.sa-login .sa-login-links{text-align:center;margin-top:18px;font-size:12px}
body.sa-login .password-eye{background:transparent;border:0;padding:4px 8px;color:var(--nx-muted)}

/* Page publique : même pictogramme que la console */
.showcase-mark{width:36px;height:36px;display:block;filter:drop-shadow(0 4px 12px rgba(47,134,255,.28))}

/* Responsive : mêmes seuils que la Super console Nexikos */
@media(max-width:900px){
  body.nx-shell .sa-top{padding:0 14px}
  body.nx-shell .sa-brand>div{display:none}
  body.nx-shell .sa-main{padding:16px}
  body.nx-shell .sa-hero{align-items:flex-start;flex-direction:column;padding:12px 14px;gap:10px}
  body.nx-shell .sa-storage-badge{min-width:0;width:100%}
  body.nx-shell .sa-user>span{display:none}
  body.nx-shell .grid.apps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  body.nx-shell .sa-top{height:auto;min-height:64px;flex-wrap:wrap;row-gap:6px;padding:8px 12px}
  body.nx-shell .sa-user{width:100%;justify-content:flex-end;gap:8px;flex-wrap:wrap}
  body.nx-shell .sa-view-tabs{width:100%;overflow:auto}
  body.nx-shell .sa-view-tab{font-size:14px;padding:8px 11px}
  body.nx-shell .grid.apps{grid-template-columns:minmax(0,1fr)}
  body.nx-shell .toolbar{flex-direction:column;align-items:stretch}
  .zeus-wordmark{font-size:22px}
}
/* Le surtitre est désormais porté par .sa-kicker dans le HTML. */
body.sa-login .login-card::before{content:none;display:none}

/* ==========================================================================
   v1.0.22-cl — pilotage : accès, abonnements offerts, promotions, déploiements
   ========================================================================== */
body.nx-shell .toolbar{gap:10px;flex-wrap:wrap}
body.nx-shell .toolbar>form{margin:0}
.access-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;border:1px solid var(--nx-line);white-space:nowrap}
.access-pill.ok{color:var(--nx-ok-ink);background:rgba(55,211,153,.12);border-color:rgba(55,211,153,.28)}
.access-pill.warning{color:var(--nx-warn-ink);background:rgba(245,166,35,.12);border-color:rgba(245,166,35,.30)}
.access-pill.info{color:var(--nx-link);background:rgba(76,141,255,.12);border-color:rgba(76,141,255,.26)}
.access-pill.error{color:var(--nx-bad-ink);background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.30)}
.access-pill.muted{color:var(--nx-muted);background:transparent}
body.nx-shell .card-access{display:grid;gap:6px;margin:4px 0 12px;padding-top:10px;border-top:1px solid var(--nx-line-soft)}
body.nx-shell .card-access-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:28px}
body.nx-shell .card-access-row form{margin:0}
body.nx-shell .card-access-row .compact{padding:4px 8px;font-size:11px}
.access-pills{display:inline-flex;gap:4px;flex-wrap:wrap;flex:1;min-width:0}
.card-access-link{margin-left:auto;color:var(--nx-link);text-decoration:none;font-weight:800;padding:2px 6px;border-radius:8px}
.card-access-link:hover{background:rgba(76,141,255,.12)}

.link-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;margin:0 0 14px;font-size:12.5px;border:1px solid var(--nx-line)}
.link-state.ok{background:rgba(55,211,153,.06);border-color:rgba(55,211,153,.22)}
.link-state.error{background:rgba(255,107,107,.07);border-color:rgba(255,107,107,.26)}
.notice-card{padding:14px 16px;border-radius:14px;margin:0 0 14px;border:1px solid rgba(245,166,35,.30);background:rgba(245,166,35,.07);font-size:13px}
.notice-card p{margin:6px 0 0;color:var(--nx-muted);line-height:1.5}
.notice-card a{color:var(--nx-link)}
body.nx-shell .access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
body.nx-shell .access-toggle{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--nx-line);border-radius:14px;background:var(--nx-panel2);cursor:pointer}
body.nx-shell .access-toggle input{margin-top:3px;width:16px;height:16px;accent-color:var(--nx-primary)}
body.nx-shell .access-toggle strong{display:block;color:var(--nx-ink);font-size:13px}
body.nx-shell .access-toggle small{display:block;color:var(--nx-muted);font-weight:500;margin-top:3px;line-height:1.4}
body.nx-shell .access-toggle.on.warning{border-color:rgba(245,166,35,.45);background:rgba(245,166,35,.07)}
body.nx-shell .access-toggle.on.info{border-color:rgba(76,141,255,.40);background:rgba(76,141,255,.07)}
body.nx-shell .access-form textarea{width:100%;margin-top:6px}
body.nx-shell .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

body.nx-shell .row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
body.nx-shell .row-actions form{margin:0}
body.nx-shell .row-details>summary{list-style:none;cursor:pointer}
body.nx-shell .row-details>summary::-webkit-details-marker{display:none}
body.nx-shell .row-details[open]{flex-basis:100%}
body.nx-shell .row-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;padding:12px;border:1px solid var(--nx-line);border-radius:12px;background:var(--nx-panel2);min-width:280px}
body.nx-shell .row-form label{display:grid;gap:5px}
body.nx-shell .row-form .wide,body.nx-shell .promo-grid .wide{grid-column:1/-1}
body.nx-shell .row-form button{justify-self:start}
body.nx-shell td small{display:block;color:var(--nx-muted);font-size:11px;margin-top:2px}
.warn-text{color:var(--nx-warn-ink)!important}
body.nx-shell .search-form{display:flex;gap:8px;margin-bottom:12px}
body.nx-shell .search-form input{flex:1;max-width:420px}

body.nx-shell .promo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.nx-shell .promo-grid label{display:grid;gap:6px}
body.nx-shell .promo-grid small,.setting-help{color:var(--nx-muted);font-weight:500;font-size:11px}
.setting-help{display:block;margin-top:3px}
.field-label{display:block;font-size:12px;font-weight:700;color:var(--nx-label);margin-bottom:6px}
.check-chips{display:flex;gap:8px;flex-wrap:wrap}
.check-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--nx-line);border-radius:10px;background:var(--nx-panel2);cursor:pointer}
.check-chip span{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.promo-preview{padding:8px 10px;border-radius:10px;border:1px solid rgba(76,141,255,.24);background:linear-gradient(135deg,rgba(76,141,255,.10),rgba(124,77,255,.06));font-size:12px;line-height:1.45;max-width:440px}
.promo-cta{color:var(--nx-link);font-weight:800;white-space:nowrap}

body.nx-shell .grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.nx-shell .deploy-env-card .stack{display:grid;gap:10px}
body.nx-shell .deploy-env-card label{display:grid;gap:6px}
body.nx-shell .deploy-env-card textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
body.nx-shell .deploy-env-card button{justify-self:start}
.inbox-list{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.inbox-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inbox-list form{margin:0}

@media(max-width:900px){
  body.nx-shell .access-grid,body.nx-shell .grid.two,body.nx-shell .promo-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:620px){
  body.nx-shell .row-form{grid-template-columns:minmax(0,1fr);min-width:0}
  body.nx-shell .search-form{flex-direction:column}
}
body.nx-shell input[type=file]{padding:7px;border:1px dashed var(--nx-line);border-radius:10px;background:var(--nx-field);color:var(--nx-muted);font-size:12px;max-width:100%}
body.nx-shell input[type=file]::file-selector-button{margin-right:10px;padding:6px 10px;border:1px solid var(--nx-line);border-radius:8px;background:var(--nx-panel2);color:var(--nx-ink);font-weight:750;cursor:pointer}

/* v1.0.25-cl — clonage complet Nexikos */
body.nx-shell .clone-rules{margin:12px 0;padding-left:18px;color:var(--nx-muted);font-size:12.5px;line-height:1.55}
body.nx-shell .clone-rules b{color:var(--nx-ink)}
body.nx-shell .keep-list{margin:0 0 12px;font-size:12px;color:var(--nx-muted)}
body.nx-shell .keep-list summary{cursor:pointer;font-weight:700;color:var(--nx-label)}
body.nx-shell .keep-list code{display:block;margin-top:6px;white-space:normal;line-height:1.6}

/* v1.0.28-cl — moniteur de connexions en direct */
.sessions-options{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.sessions-options .env-switch{margin:0}
.sessions-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.sessions-kpis>div{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--panel2,transparent);min-width:0}.sessions-kpis span{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.sessions-kpis strong{display:block;font-size:24px;margin:4px 0}.sessions-kpis small{display:block;color:var(--muted);font-size:12px}
.session-loading{padding:18px 20px;margin:0}.sessions-live .notice-card{margin:0;width:100%}
@media(max-width:980px){.sessions-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sessions-options{align-items:flex-start}}

/* v1.0.31-cl — toute liste a sa propre barre de défilement (plus de listes interminables), en-tête toujours visible */
body.nx-shell .table-wrap{max-height:clamp(320px,70vh,640px);overflow:auto;overscroll-behavior:contain}
body.nx-shell .table-wrap thead th,.light body.nx-shell .table-wrap thead th{position:sticky;top:0;z-index:2;background:var(--nx-panel)}
body.nx-shell .inbox-list,body.nx-shell .keep-list code{max-height:clamp(200px,40vh,320px);overflow:auto;overscroll-behavior:contain}
body.nx-shell .keep-list code{display:block}

/* v1.0.34-cl — vidéos de présentation (page commerciale) */
.showcase-videos{margin-top:56px}.showcase-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:18px}
.showcase-video{margin:0;border:1px solid var(--border,#253041);border-radius:16px;overflow:hidden;background:var(--panel,#111722)}.showcase-video video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.showcase-video figcaption{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;font-size:14px}.showcase-video figcaption a{margin-left:auto;font-size:13px}
.video-version{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--border,#253041);color:var(--muted,#8da0be)}.video-bundle{margin-top:16px}
