:root{
  --sn-black:#101014;--sn-dark:#18181f;--sn-ink:#111827;--sn-muted:#657083;--sn-line:#e9dfcf;--sn-bg:#f7f0e2;--sn-soft:#fff8e8;--sn-card:#fff;--sn-yellow:#f5b400;--sn-orange:#ff7a1a;--sn-green:#38a169;--sn-red:#e53e3e;--sn-blue:#2563eb;--sn-radius:24px;--sn-shadow:0 18px 60px rgba(16,16,20,.12)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff;color:var(--sn-ink);line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.sn-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(17,24,39,.08)}.sn-topbar{width:100%;display:flex;align-items:center;gap:24px;padding:14px clamp(18px,4vw,64px)}.sn-brand{display:flex;align-items:center;gap:10px;font-weight:900}.sn-brand span{display:flex;flex-direction:column;line-height:1}.sn-brand small{font-size:12px;color:var(--sn-orange);letter-spacing:.08em;text-transform:uppercase}.sn-nav{display:flex;align-items:center;gap:6px;margin-left:auto}.sn-nav a{padding:10px 12px;border-radius:999px;color:#202334;font-weight:700;font-size:14px}.sn-nav a:hover,.sn-nav a.is-active{background:#fff1c9;color:#111}.sn-lang{display:flex;gap:4px;font-size:12px;font-weight:900}.sn-lang a{padding:6px 7px;border-radius:8px;background:#f4f1ea}.sn-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;padding:12px 18px;font-weight:900;cursor:pointer;transition:.18s ease;font-size:14px}.sn-btn:hover{transform:translateY(-1px)}.sn-btn-primary{background:linear-gradient(135deg,var(--sn-yellow),var(--sn-orange));color:#111;box-shadow:0 12px 30px rgba(255,122,26,.22)}.sn-btn-dark{background:var(--sn-black);color:#fff}.sn-btn-light{background:#fff;color:#111;border:1px solid rgba(17,24,39,.10)}.sn-btn-outline{background:transparent;color:#111;border:2px solid rgba(17,24,39,.16)}.sn-container{width:100%;padding-inline:clamp(18px,5vw,78px)}.sn-hero{min-height:620px;background:radial-gradient(circle at 74% 22%,rgba(245,180,0,.32),transparent 24%),linear-gradient(135deg,#fff7e2 0%,#fffaf0 48%,#f2eadb 100%);display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:42px;padding:60px clamp(18px,5vw,78px) 38px}.sn-kicker{display:inline-flex;align-items:center;gap:8px;background:#111;color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.sn-kicker:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sn-yellow)}.sn-hero h1{font-size:clamp(42px,5.2vw,84px);line-height:.98;margin:18px 0 18px;letter-spacing:-.06em;color:#101014}.sn-hero p{font-size:clamp(17px,1.4vw,22px);color:#2f3544;max-width:850px}.sn-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}.sn-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:32px}.sn-stat{background:rgba(255,255,255,.78);border:1px solid rgba(17,24,39,.08);border-radius:18px;padding:18px;box-shadow:0 10px 35px rgba(17,24,39,.08)}.sn-stat strong{display:block;font-size:28px}.sn-stat span{font-size:13px;color:var(--sn-muted);font-weight:700}.sn-hero-visual{position:relative;min-height:520px;border-radius:36px;background:linear-gradient(145deg,#111116,#24242f);overflow:hidden;box-shadow:var(--sn-shadow);border:1px solid rgba(255,255,255,.12)}.sn-hero-visual:before{content:"";position:absolute;inset:auto -18% -28% 18%;height:68%;background:radial-gradient(circle,var(--sn-yellow),transparent 65%);opacity:.55}.sn-hero-visual:after{content:"";position:absolute;inset:12% 9% 9% 18%;border:24px solid rgba(245,180,0,.88);border-left-color:#fff;border-bottom-color:rgba(56,161,105,.95);border-radius:48% 48% 52% 52%;transform:rotate(-17deg)}.sn-hornet-card{position:absolute;left:30px;right:30px;bottom:30px;background:rgba(255,255,255,.94);border-radius:24px;padding:22px;z-index:2;box-shadow:0 25px 55px rgba(0,0,0,.25)}.sn-hornet-card h2{margin:0 0 8px;font-size:24px}.sn-hornet-card p{margin:0;color:#4b5563}.sn-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.sn-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.sn-section{padding:70px clamp(18px,5vw,78px)}.sn-section-soft{background:var(--sn-bg)}.sn-section-dark{background:linear-gradient(135deg,#101014,#1e1e28);color:#fff}.sn-section-title{max-width:900px;margin:0 auto 36px;text-align:center}.sn-section-title h2{font-size:clamp(30px,3vw,50px);line-height:1.05;letter-spacing:-.04em;margin:0 0 12px}.sn-section-title p{margin:0;color:var(--sn-muted);font-size:18px}.sn-section-dark .sn-section-title p{color:#d1d5db}.sn-card{background:var(--sn-card);border:1px solid rgba(17,24,39,.08);border-radius:var(--sn-radius);padding:26px;box-shadow:0 14px 45px rgba(16,16,20,.08)}.sn-card h3{font-size:22px;margin:0 0 10px}.sn-card p{color:#4b5563;margin:0 0 16px}.sn-icon{width:48px;height:48px;border-radius:16px;background:#fff1c9;display:grid;place-items:center;font-size:25px;margin-bottom:18px}.sn-split{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}.sn-panel{background:#fff;border-radius:30px;padding:34px;box-shadow:var(--sn-shadow);border:1px solid rgba(17,24,39,.08)}.sn-list{display:grid;gap:14px;margin:20px 0 0;padding:0;list-style:none}.sn-list li{display:flex;gap:12px;align-items:flex-start}.sn-list li:before{content:"✓";display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:var(--sn-green);color:#fff;font-size:14px;font-weight:900}.sn-form{display:grid;gap:16px}.sn-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sn-field label{display:block;font-weight:900;margin-bottom:7px}.sn-field input,.sn-field select,.sn-field textarea{width:100%;border:1px solid rgba(17,24,39,.16);background:#fff;border-radius:14px;padding:14px 15px;font:inherit;outline:none}.sn-field textarea{min-height:140px;resize:vertical}.sn-field input:focus,.sn-field select:focus,.sn-field textarea:focus{border-color:var(--sn-orange);box-shadow:0 0 0 4px rgba(255,122,26,.12)}.sn-required{color:var(--sn-red)}.sn-auth{min-height:calc(100vh - 90px);display:grid;place-items:center;padding:50px 18px;background:linear-gradient(135deg,#fff8e8,#f7f0e2)}.sn-auth-card{width:min(560px,100%);background:#fff;border-radius:28px;padding:34px;box-shadow:var(--sn-shadow)}.sn-auth-card h1{margin:0 0 10px;font-size:34px;letter-spacing:-.04em}.sn-auth-card p{color:#657083}.sn-flash{margin:18px clamp(18px,5vw,78px);padding:14px 18px;border-radius:14px;font-weight:800}.sn-flash-success{background:#dcfce7;color:#166534}.sn-flash-error{background:#fee2e2;color:#991b1b}.sn-flash-warning{background:#fef3c7;color:#92400e}.sn-table-wrap{overflow:auto;background:#fff;border-radius:20px;border:1px solid rgba(17,24,39,.08)}table.sn-table{border-collapse:collapse;width:100%;min-width:740px}table.sn-table th,table.sn-table td{text-align:left;padding:14px 16px;border-bottom:1px solid rgba(17,24,39,.07)}table.sn-table th{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#657083;background:#faf7f0}.sn-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.badge-new{background:#fff1c9;color:#7a4b00}.badge-info{background:#dbeafe;color:#1e40af}.badge-warn{background:#ffedd5;color:#9a3412}.badge-ok{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.sn-dashboard{padding:38px clamp(18px,5vw,78px);background:#faf7f0;min-height:70vh}.sn-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.sn-dashboard-head h1{font-size:42px;letter-spacing:-.05em;margin:0}.sn-empty{border:2px dashed rgba(17,24,39,.16);border-radius:22px;padding:30px;text-align:center;color:#657083;background:#fff}.sn-footer{background:#101014;color:#fff;padding:54px clamp(18px,5vw,78px) 22px}.sn-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:34px}.sn-footer p{color:#cdd0d8;max-width:520px}.sn-footer h3{font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:#ffcf52}.sn-footer a{display:block;color:#e5e7eb;margin:9px 0}.sn-footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:18px;color:#aaa}.sn-brand-footer small{color:#ffcf52}.sn-price{font-size:44px;font-weight:1000;letter-spacing:-.05em}.sn-price small{font-size:16px;color:#657083}.sn-pro-locked{background:linear-gradient(135deg,#111116,#282836);color:#fff;border-radius:28px;padding:30px}.sn-pro-locked p{color:#d1d5db}.sn-actions{display:flex;gap:10px;flex-wrap:wrap}.sn-inline-muted{color:#657083;font-size:14px}.sn-hidden{display:none!important}@media (max-width: 960px){.sn-nav,.sn-lang,.sn-topbar>.sn-btn{display:none}.sn-hero,.sn-split,.sn-grid-2,.sn-grid-3{grid-template-columns:1fr}.sn-hero{min-height:auto;padding-top:34px}.sn-hero h1{font-size:42px}.sn-hero-visual{min-height:360px}.sn-hero-stats{grid-template-columns:1fr}.sn-footer-grid{grid-template-columns:1fr}.sn-form-row{grid-template-columns:1fr}.sn-dashboard-head{align-items:flex-start;flex-direction:column}}

/* Empêche les blocs décoratifs de passer au-dessus du header */
.sn-section,
.sn-hero,
.sn-pro-hero,
.sn-map-page,
.sn-auth-page,
.sn-card,
.sn-panel{
    position:relative;
    z-index:1;
}

/* =========================================================
   SignalNids V3.0 — Header PC fixe au scroll
   Le header reste visible quand on descend dans la page.
   ========================================================= */
:root{
    --sn-header-height: 86px;
}

html,
body{
    overflow-x:hidden;
}

body:not(.sn-mobile){
    padding-top:var(--sn-header-height);
}

.sn-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    z-index:100000 !important;
    background:rgba(255,255,255,.96) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    box-shadow:0 10px 30px rgba(10,19,38,.08);
}

.sn-topbar{
    min-height:var(--sn-header-height);
    position:relative;
    z-index:100001 !important;
}

/* Sécurité : aucun bloc ne doit passer au-dessus du header */
main,
.sn-section,
.sn-hero,
.sn-pro-hero,
.sn-map-page,
.sn-card,
.sn-panel,
.sn-map-frame,
.leaflet-container{
    position:relative;
    z-index:1;
}

/* Les contrôles Leaflet restent sous le header */
.leaflet-top,
.leaflet-bottom{
    z-index:500 !important;
}


/* V3.6 language switcher */
.sn-lang a.is-active{background:#ffe7a6;color:#111;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
@media (min-width:961px){.sn-lang{flex-wrap:wrap;max-width:210px;justify-content:flex-end}.sn-lang a{min-width:28px;text-align:center}}
