/* ============================================================
   Kara Link – NFC & QR Manager
   Direction : Luxury Tech Dark
   Palette   : #141414 (deep dark), #29b6d8 (cyan signature),
               #f5f5f0 (warm off-white), #1f1f1f (text)
   Font      : I Brand (display) + DM Sans (body)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,300&display=swap');

:root {
    --kl-cyan:       #29b6d8;
    --kl-cyan-dim:   #1e9ab8;
    --kl-cyan-glow:  rgba(41,182,216,.18);
    --kl-cyan-ultra: rgba(41,182,216,.06);
    --kl-dark:       #141414;
    --kl-dark2:      #1c1c1c;
    --kl-white:      #f5f5f0;
    --kl-text:       #1f1f1f;
    --kl-border:     rgba(31,31,31,.12);
    --kl-border-dark: rgba(255,255,255,.07);
    --kl-success:    #22c55e;
    --kl-danger:     #ef4444;
    --kl-orange:     #f59e0b;
    --kl-radius:     16px;
    --kl-radius-sm:  10px;
    --kl-shadow:     0 4px 24px rgba(0,0,0,.06);
    --kl-shadow-lg:  0 12px 48px rgba(0,0,0,.12);
    --kl-shadow-xl:  0 24px 80px rgba(0,0,0,.2);
    --font-display:  'I Brand', 'DM Sans', sans-serif;
    --font-body:     'DM Sans', system-ui, sans-serif;
}

/* Masquer titre WordPress */
.entry-title,.page-title,h1.page-header,.wp-block-post-title,
article>header>h1,.elementor-page-title,
.elementor-heading-title.elementor-page-title { display:none !important; }

/* ── Base ── */
.nqm-wrap {
    max-width: 600px;
    margin: 0 auto;
    font-family: var(--font-body);
    color: var(--kl-text);
    padding-bottom: 60px;
    overflow-x: hidden;
    box-sizing: border-box;
    width: 100%;
}

/* ================================================================
   HEADER
================================================================ */
.nqm-header {
    background: var(--kl-dark);
    border-radius: var(--kl-radius) var(--kl-radius) 0 0;
    padding: 44px 40px 36px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
/* Grain */
.nqm-header::before {
    content:'';position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
    background-size:180px;pointer-events:none;
}
/* Radial glow */
.nqm-header::after {
    content:'';position:absolute;top:-80px;left:50%;transform:translateX(-50%);
    width:440px;height:440px;
    background:radial-gradient(circle,rgba(41,182,216,.2) 0%,rgba(41,182,216,.05) 45%,transparent 70%);
    pointer-events:none;
}

.nqm-header-logo {
    position:relative;z-index:1;
    display:flex;align-items:center;justify-content:center;
    margin-bottom:24px;
}
.nqm-header-logo-img {
    max-height:48px;max-width:180px;width:auto;
    object-fit:contain;filter:brightness(0) invert(1);
}
.nqm-header-logo-icon {
    width:44px;height:44px;
    background:linear-gradient(135deg,var(--kl-cyan),var(--kl-cyan-dim));
    border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    font-size:22px;box-shadow:0 0 24px var(--kl-cyan-glow);
}
.nqm-header-logo-name {
    font-family:var(--font-display);font-size:22px;font-weight:800;
    color:var(--kl-white);margin-left:12px;letter-spacing:-.3px;
}
.nqm-header-logo-name span { color:var(--kl-cyan); }

.nqm-header h2 {
    position:relative;z-index:1;
    font-family:var(--font-display);font-size:44px;font-weight:800;
    color:var(--kl-white) !important;
    margin:0 0 12px;line-height:1.05;letter-spacing:-2px;
}
.nqm-header h2 span { color:var(--kl-cyan); }

.nqm-subhead {
    position:relative;z-index:1;
    color:rgba(245,245,240,.5) !important;
    font-size:14px;font-weight:400;margin:0;letter-spacing:.1px;
}
.nqm-subhead strong { color:rgba(245,245,240,.85);font-weight:600; }

/* ================================================================
   PROGRESSION
================================================================ */
.nqm-progress-wrap {
    background:var(--kl-dark2);
    padding:20px 40px 26px;
    position:relative;overflow:hidden;
}
.nqm-progress-wrap::after {
    content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,transparent,var(--kl-border-dark),transparent);
}
.nqm-progress-track {
    height:2px;background:rgba(255,255,255,.06);
    border-radius:99px;overflow:hidden;margin-bottom:24px;
}
.nqm-progress-fill {
    height:100%;
    background:linear-gradient(90deg,var(--kl-cyan),rgba(41,182,216,.5));
    border-radius:99px;width:0%;
    transition:width .65s cubic-bezier(.4,0,.2,1);
    box-shadow:0 0 14px var(--kl-cyan),0 0 28px var(--kl-cyan-glow);
    position:relative;
}
.nqm-progress-fill::after {
    content:'';position:absolute;right:-2px;top:50%;transform:translateY(-50%);
    width:7px;height:7px;background:var(--kl-cyan);border-radius:50%;
    box-shadow:0 0 10px var(--kl-cyan);
}
.nqm-step-dots { display:flex;align-items:center;justify-content:center; }
.nqm-dot { display:flex;flex-direction:column;align-items:center;gap:7px;flex:1; }
.nqm-dot-circle {
    width:30px;height:30px;border-radius:50%;
    background:rgba(255,255,255,.05);color:rgba(255,255,255,.2);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--font-body);font-weight:600;font-size:11px;
    transition:all .4s cubic-bezier(.4,0,.2,1);
    border:1px solid rgba(255,255,255,.07);
}
.nqm-dot small {
    font-size:10px;color:rgba(255,255,255,.18);
    letter-spacing:.5px;text-transform:uppercase;font-weight:500;transition:all .3s;
}
.nqm-dot.active .nqm-dot-circle {
    background:var(--kl-cyan);color:var(--kl-dark);border-color:var(--kl-cyan);
    box-shadow:0 0 0 4px rgba(41,182,216,.15),0 0 18px var(--kl-cyan-glow);font-weight:800;
}
.nqm-dot.active small { color:var(--kl-cyan);font-weight:700; }
.nqm-dot.done .nqm-dot-circle {
    background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);
    color:transparent;font-size:0;
}
.nqm-dot.done .nqm-dot-circle::after { content:'✓';font-size:12px;color:#22c55e; }
.nqm-dot.done small { color:rgba(255,255,255,.2); }
.nqm-dot-line {
    flex:1;height:1px;background:rgba(255,255,255,.06);
    margin:0 3px;margin-bottom:17px;transition:background .5s;
}
.nqm-dot-line.done {
    background:linear-gradient(90deg,var(--kl-cyan),rgba(41,182,216,.25));
}

/* ================================================================
   ÉTAPES
================================================================ */
.nqm-step {
    background:#fff;
    border:1px solid rgba(31,31,31,.09);border-top:none;
    padding:32px 40px;
    animation:kl-step-in .35s cubic-bezier(.4,0,.2,1) both;
    box-sizing: border-box;
    width: 100%;
    overflow-x: hidden;
}
.nqm-step:last-of-type { border-radius:0 0 var(--kl-radius) var(--kl-radius); }
.nqm-step.hidden { display:none !important; }
@keyframes kl-step-in {
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:none}
}
.nqm-step-header {
    display:flex;align-items:center;gap:16px;
    margin-bottom:28px;padding-bottom:20px;
    border-bottom:1px solid rgba(31,31,31,.07);
}
.nqm-step-num {
    width:40px;height:40px;border-radius:12px;
    background:var(--kl-dark);color:var(--kl-cyan);
    font-family:var(--font-display);font-weight:800;font-size:16px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.nqm-step-header h3 {
    margin:0 0 3px;
    font-family:var(--font-display) !important;
    font-size:18px !important;font-weight:700 !important;
    color:#1f1f1f !important;letter-spacing:-.3px;
}
.nqm-step-header p { margin:0;font-size:13px;color:rgba(31,31,31,.4) !important; }

/* ── Tabs ── */
.nqm-tabs {
    display:flex;background:#f7f7f6;border-radius:12px;
    padding:3px;margin-bottom:24px;gap:3px;
}
.nqm-tab {
    flex:1;padding:10px 12px;border:none;background:transparent;
    border-radius:9px;cursor:pointer;font-family:var(--font-body);
    font-weight:600;font-size:13px;color:rgba(31,31,31,.4);transition:all .2s;
}
.nqm-tab.active { background:var(--kl-dark);color:var(--kl-cyan);box-shadow:0 2px 10px rgba(0,0,0,.12); }
.nqm-tab-content{display:none;}.nqm-tab-content.active{display:block;}

/* ── Champs ── */
.nqm-field { margin-bottom:18px;position:relative; }
.nqm-field label {
    display:block;
    font-family:var(--font-display) !important;
    font-size:11px !important;font-weight:700 !important;
    color:#1f1f1f !important;
    letter-spacing:.7px;text-transform:uppercase;margin-bottom:7px;
}
.nqm-field input[type="text"],
.nqm-field input[type="email"],
.nqm-field input[type="password"],
.nqm-field input[type="tel"],
.nqm-field input[type="url"],
.nqm-field select {
    width:100%;padding:13px 16px;
    border:2px solid #1f1f1f !important;
    border-radius:var(--kl-radius-sm);
    font-family:var(--font-body);font-size:15px;
    color:#1f1f1f !important;background:#fff !important;
    box-sizing:border-box;outline:none;
    transition:border-color .2s,box-shadow .2s,transform .15s;
    appearance:none;
}
.nqm-field input::placeholder { color:rgba(31,31,31,.3) !important;opacity:1 !important; }
.nqm-field input:focus,.nqm-field select:focus {
    border-color:var(--kl-cyan) !important;
    box-shadow:0 0 0 4px var(--kl-cyan-glow),0 2px 8px rgba(0,0,0,.05) !important;
    transform:translateY(-1px);
}
.nqm-field-row{display:flex;gap:14px;}
.nqm-field-row .nqm-field{flex:1;}
.nqm-req { color:var(--kl-cyan); }
.nqm-hint-text { font-size:12px;color:rgba(31,31,31,.38);margin-top:5px;display:block;font-style:italic; }
.nqm-hint-inline { font-size:12px;color:rgba(31,31,31,.35);font-weight:400;text-transform:none;letter-spacing:0; }

/* Section label */
.nqm-section-label {
    font-family:var(--font-display);font-size:10px;font-weight:700;
    text-transform:uppercase;letter-spacing:1px;color:rgba(31,31,31,.3);
    margin:22px 0 14px;display:flex;align-items:center;gap:10px;
}
.nqm-section-label::after{content:'';flex:1;height:1px;background:rgba(31,31,31,.07);}

/* Password */
.nqm-pass-wrap{position:relative;display:flex;}
.nqm-pass-wrap input{flex:1;}
.nqm-eye{
    position:absolute;right:14px;top:50%;transform:translateY(-50%);
    background:none;border:none;cursor:pointer;font-size:16px;
    color:rgba(31,31,31,.28);padding:0;transition:color .2s;
}
.nqm-eye:hover{color:var(--kl-cyan);}
.nqm-strength-bar{height:3px;background:rgba(31,31,31,.07);border-radius:99px;margin-top:8px;overflow:hidden;}
.nqm-strength-bar div{height:100%;border-radius:99px;transition:width .4s,background .4s;width:0;}

/* Phone */
.nqm-phone-wrap {
    display:flex;align-items:center;
    border:2px solid #1f1f1f !important;
    border-radius:var(--kl-radius-sm);overflow:hidden;
    transition:border-color .2s,box-shadow .2s;
}
.nqm-phone-wrap:focus-within{border-color:var(--kl-cyan) !important;box-shadow:0 0 0 4px var(--kl-cyan-glow) !important;}
.nqm-phone-flag{background:rgba(31,31,31,.04);padding:13px 14px;font-size:13px;white-space:nowrap;border-right:1px solid rgba(31,31,31,.1);color:rgba(31,31,31,.35);font-weight:500;}
.nqm-phone-wrap input{flex:1;border:none !important;border-radius:0 !important;box-shadow:none !important;transform:none !important;}

/* Select */
.nqm-select-wrap{position:relative;}
.nqm-select-wrap::after{content:'↓';position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:rgba(31,31,31,.3);font-size:13px;}
.nqm-select-wrap select{padding-right:40px;cursor:pointer;}

/* Source grid */
.nqm-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.nqm-source-btn {
    display:flex;flex-direction:column;align-items:center;gap:5px;
    padding:12px 6px;border:1.5px solid rgba(31,31,31,.1);border-radius:10px;
    background:#fff;cursor:pointer;font-family:var(--font-body);
    font-size:11px;font-weight:600;color:#1f1f1f;
    transition:all .2s;min-width:0;overflow:hidden;text-align:center;
}
.nqm-source-btn span:first-child{font-size:18px;flex-shrink:0;}
.nqm-source-btn span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;}
.nqm-source-btn:hover{border-color:var(--kl-cyan);background:var(--kl-cyan-ultra);transform:translateY(-1px);}
.nqm-source-btn.selected{border-color:var(--kl-cyan);background:var(--kl-cyan-ultra);color:var(--kl-cyan-dim);box-shadow:0 0 0 3px var(--kl-cyan-glow);}

/* Consent */
.nqm-consent-card {
    display:flex;gap:16px;align-items:flex-start;
    background:#f8f8f7;border:1px solid rgba(31,31,31,.07);
    border-radius:12px;padding:20px;margin-bottom:20px;
}
.nqm-consent-icon{font-size:28px;flex-shrink:0;}
.nqm-consent-body strong{display:block;font-family:var(--font-display);font-size:14px;font-weight:700;color:#1f1f1f;margin-bottom:6px;}
.nqm-consent-body p{margin:0 0 5px;font-size:13px;color:rgba(31,31,31,.5);line-height:1.6;}
.nqm-consent-body a{color:var(--kl-cyan);}
.nqm-checkbox-row{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:4px 0;margin-bottom:18px;font-size:14px;font-weight:500;line-height:1.5;color:#1f1f1f;}
.nqm-custom-checkbox{flex-shrink:0;padding-top:1px;}
.nqm-custom-checkbox input[type="checkbox"]{display:none;}
.nqm-checkmark{width:22px;height:22px;border-radius:7px;border:2px solid rgba(31,31,31,.18);background:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent;transition:all .2s;}
.nqm-custom-checkbox input:checked~.nqm-checkmark{background:var(--kl-cyan);border-color:var(--kl-cyan);color:#fff;box-shadow:0 2px 8px var(--kl-cyan-glow);}
.nqm-rgpd-footer{background:rgba(41,182,216,.06);border:1px solid rgba(41,182,216,.14);border-radius:10px;padding:11px 16px;font-size:12px;color:var(--kl-cyan-dim);text-align:center;margin-bottom:22px;font-weight:500;}

/* ── Boutons ── */
.nqm-btn {
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:14px 24px;border-radius:12px;
    font-family:var(--font-body);font-size:15px;font-weight:700;
    cursor:pointer;border:none;
    transition:all .25s cubic-bezier(.4,0,.2,1);
    text-decoration:none;box-sizing:border-box;letter-spacing:-.1px;
    position:relative;overflow:hidden;
}
.nqm-btn::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s;}
.nqm-btn:hover::before{left:150%;}

.nqm-btn-primary{background:var(--kl-dark);color:var(--kl-white);width:100%;border:2px solid var(--kl-dark);}
.nqm-btn-primary:hover{background:var(--kl-dark2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.18);}
.nqm-btn-success{background:linear-gradient(135deg,var(--kl-cyan),var(--kl-cyan-dim));color:#fff;width:100%;border:none;}
.nqm-btn-success:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--kl-cyan-glow),0 4px 12px rgba(41,182,216,.25);filter:brightness(1.05);}
.nqm-btn-outline{background:transparent;color:rgba(31,31,31,.45);border:1.5px solid rgba(31,31,31,.13);width:auto;padding:14px 20px;}
.nqm-btn-outline:hover{border-color:rgba(31,31,31,.3);color:#1f1f1f;background:rgba(31,31,31,.03);}
.nqm-btn:disabled{opacity:.4;cursor:not-allowed;transform:none !important;filter:none !important;}
.nqm-btn-row{display:flex;gap:10px;margin-top:24px;align-items:center;}
.nqm-btn-row .nqm-btn-primary,.nqm-btn-row .nqm-btn-success{flex:1;}

/* Réseaux */
.nqm-networks{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:8px;margin-bottom:22px;}
.nqm-network-btn {
    display:flex;flex-direction:column;align-items:center;gap:6px;
    padding:14px 6px;border:1.5px solid rgba(31,31,31,.1);border-radius:12px;
    background:#fff;cursor:pointer;font-family:var(--font-body);
    font-size:11px;font-weight:600;color:#1f1f1f;transition:all .2s;
}
.nqm-net-icon{font-size:22px;}
.nqm-network-btn:hover{border-color:var(--kl-cyan);background:var(--kl-cyan-ultra);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.06);}
.nqm-network-btn.selected{border-color:var(--kl-cyan);background:var(--kl-cyan-ultra);color:var(--kl-cyan-dim);box-shadow:0 0 0 3px var(--kl-cyan-glow);}

/* Locked network */
.nqm-locked-network {
    display:flex;align-items:center;gap:16px;
    background:var(--kl-dark);border-radius:14px;padding:18px 22px;margin-bottom:4px;
    position:relative;overflow:hidden;
}
.nqm-locked-network::after{content:'';position:absolute;top:-30px;right:-30px;width:110px;height:110px;background:radial-gradient(circle,rgba(41,182,216,.12),transparent 70%);pointer-events:none;}
.nqm-locked-icon{font-size:36px;flex-shrink:0;position:relative;z-index:1;}
.nqm-locked-info{flex:1;position:relative;z-index:1;}
.nqm-locked-info strong{display:block;font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--kl-white);}
.nqm-locked-info span{font-size:12px;color:rgba(245,245,240,.3);}
.nqm-locked-badge{background:rgba(41,182,216,.1);color:var(--kl-cyan);border:1px solid rgba(41,182,216,.18);font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:6px 12px;border-radius:20px;white-space:nowrap;position:relative;z-index:1;}

/* URL input */
.nqm-input-group{display:flex;}
.nqm-prefix{background:rgba(31,31,31,.04);border:2px solid #1f1f1f;border-right:none;padding:13px 12px;border-radius:var(--kl-radius-sm) 0 0 var(--kl-radius-sm);font-size:12px;color:rgba(31,31,31,.38);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;font-weight:500;}
.nqm-prefix:empty{display:none;}
.nqm-input-group input{flex:1;border-radius:0 var(--kl-radius-sm) var(--kl-radius-sm) 0 !important;border-left:none !important;}
.nqm-prefix:empty~input{border-radius:var(--kl-radius-sm) !important;border-left:2px solid #1f1f1f !important;}
.nqm-prefix-locked{background:rgba(41,182,216,.06) !important;border-color:var(--kl-cyan) !important;color:var(--kl-cyan-dim) !important;font-weight:600 !important;}
.nqm-preview{background:rgba(41,182,216,.05);border:1px solid rgba(41,182,216,.15);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--kl-cyan-dim);word-break:break-all;margin-top:8px;font-weight:500;}
.nqm-preview.hidden{display:none;}

/* Messages */
.nqm-msg{padding:12px 16px;border-radius:10px;font-size:13px;margin-bottom:14px;display:none;font-weight:500;}
.nqm-msg.error{background:#fff5f5;color:var(--kl-danger);border:1px solid rgba(239,68,68,.14);display:block;}
.nqm-msg.success{background:#f0fdf4;color:#16a34a;border:1px solid rgba(34,197,94,.2);display:block;}

/* Logged banner */
.nqm-logged-banner{display:flex;align-items:center;gap:12px;background:var(--kl-dark);border-radius:12px;padding:14px 18px;margin-bottom:24px;font-size:14px;color:rgba(245,245,240,.55);}
.nqm-user-avatar-sm{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--kl-cyan),var(--kl-cyan-dim));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:14px;flex-shrink:0;}
.nqm-logged-banner strong{color:var(--kl-white);}

/* Succès */
.nqm-success-wrap{text-align:center;padding:28px 8px 12px;}
.nqm-confetti{font-size:72px;animation:kl-bounce .8s cubic-bezier(.36,.07,.19,.97);display:block;filter:drop-shadow(0 8px 24px rgba(41,182,216,.3));}
.nqm-success-wrap h3{font-family:var(--font-display) !important;font-size:28px !important;font-weight:800 !important;color:#1f1f1f !important;letter-spacing:-.5px;margin:14px 0 6px;}
.nqm-success-wrap p{color:rgba(31,31,31,.45);margin:0 0 20px;font-size:15px;}
.nqm-final-url{background:#f8f8f7;border:1px solid rgba(31,31,31,.08);border-radius:12px;padding:14px 18px;font-size:13px;word-break:break-all;color:var(--kl-cyan-dim);margin-bottom:28px;font-weight:600;text-align:left;}

/* ================================================================
   GOOGLE PLACES
================================================================ */
#nqm-places-search{width:100%;padding:13px 44px 13px 16px;border:2px solid #1f1f1f;border-radius:var(--kl-radius-sm);font-family:var(--font-body);font-size:15px;box-sizing:border-box;outline:none;color:#1f1f1f;background:#fff;transition:border-color .2s,box-shadow .2s;}
#nqm-places-search:focus{border-color:var(--kl-cyan);box-shadow:0 0 0 4px var(--kl-cyan-glow);}
.nqm-places-wrap{position:relative;}
.nqm-spinner{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;border:2px solid rgba(31,31,31,.08);border-top-color:var(--kl-cyan);border-radius:50%;animation:kl-spin .7s linear infinite;}
.nqm-places-results{border:1px solid rgba(31,31,31,.09);border-radius:12px;background:#fff;box-shadow:var(--kl-shadow-lg);margin-top:6px;overflow:hidden;max-height:300px;overflow-y:auto;}
.nqm-place-item{padding:13px 18px;cursor:pointer;border-bottom:1px solid rgba(31,31,31,.06);transition:background .15s;}
.nqm-place-item:last-child{border-bottom:none;}
.nqm-place-item:hover{background:rgba(41,182,216,.04);}
.nqm-place-item strong{display:block;font-size:14px;font-weight:600;color:#1f1f1f;}
.nqm-place-item span{font-size:12px;color:rgba(31,31,31,.38);}
.nqm-place-card{display:flex;align-items:center;gap:14px;background:rgba(41,182,216,.05);border:1.5px solid rgba(41,182,216,.18);border-radius:12px;padding:16px 18px;margin-bottom:10px;}
.nqm-place-card-icon{font-size:28px;flex-shrink:0;}
.nqm-place-card-info{flex:1;}
.nqm-place-card-info strong{display:block;font-size:14px;font-weight:700;color:#1f1f1f;}
.nqm-place-card-info span{display:block;font-size:12px;color:rgba(31,31,31,.38);}
.nqm-place-rating{color:var(--kl-orange) !important;font-weight:600 !important;}
.nqm-place-change{background:transparent;border:1.5px solid rgba(31,31,31,.1);border-radius:8px;padding:7px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;color:rgba(31,31,31,.35);cursor:pointer;flex-shrink:0;transition:all .2s;}
.nqm-place-change:hover{border-color:var(--kl-danger);color:var(--kl-danger);}
.nqm-place-tutorial-header{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--kl-dark);}
.nqm-place-tutorial-icon{font-size:22px;flex-shrink:0;}
.nqm-place-tutorial-header strong{color:var(--kl-white) !important;font-size:14px;font-weight:700;}
.nqm-place-tutorial-intro{font-size:13px;color:#1f1f1f;padding:14px 18px 6px;margin:0;line-height:1.7;background:#fff;}
.nqm-place-tutorial-steps{background:#fff;padding:8px 18px 14px;display:flex;flex-direction:column;gap:10px;}
.nqm-tutorial-step{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#f9f9f8;border-radius:10px;border:1px solid rgba(31,31,31,.07);}
.nqm-tutorial-step-num{min-width:26px;height:26px;background:var(--kl-dark);color:var(--kl-cyan);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:12px;font-weight:800;flex-shrink:0;}
.nqm-tutorial-step-body strong{display:block;font-family:var(--font-display);font-size:13px;font-weight:700;color:#1f1f1f !important;margin-bottom:3px;}
.nqm-tutorial-step-body p{margin:0;font-size:12px;color:rgba(31,31,31,.45);line-height:1.6;}
.nqm-tutorial-step-body p a{color:var(--kl-cyan);font-weight:600;}
.nqm-place-not-found-link{padding:10px 18px;font-size:12px;color:#1f1f1f;border-top:1px solid rgba(31,31,31,.06);background:#fafaf9;}
.nqm-place-not-found-link a{color:var(--kl-cyan);font-weight:600;text-decoration:underline;}
.nqm-place-manual-wrap{background:#fff;border-top:1px solid rgba(31,31,31,.07);padding:16px 18px;}
.nqm-place-manual-wrap label{display:block;font-family:var(--font-display) !important;font-size:11px !important;font-weight:700 !important;color:#1f1f1f !important;text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px;}
.nqm-place-manual-wrap input[type="url"]{width:100%;padding:12px 14px;border:2px solid #1f1f1f !important;border-radius:var(--kl-radius-sm);font-family:var(--font-body);font-size:14px;color:#1f1f1f;outline:none;margin-bottom:10px;box-sizing:border-box;}
.nqm-place-manual-wrap input[type="url"]:focus{border-color:var(--kl-cyan) !important;box-shadow:0 0 0 4px var(--kl-cyan-glow);}
.nqm-place-manual-wrap input[type="url"]::placeholder{color:rgba(31,31,31,.3);}
.nqm-place-manual-wrap .nqm-btn-success{width:100%;}

/* ================================================================
   GOOGLE PLACES
   (existing rules above)
================================================================ */

/* ── Tutoriel Google ── */
.nqm-google-tuto {
    margin-top: 20px;
    border: 1px solid rgba(41,182,216,.18);
    border-radius: 12px;
    overflow: hidden;
}
.nqm-tuto-toggle {
    width: 100%;
    display: flex; align-items: center; gap: 10px;
    padding: 14px 18px;
    background: rgba(41,182,216,.05);
    border: none; cursor: pointer;
    font-family: var(--font-display); font-size: 13px; font-weight: 700;
    color: #1f1f1f; text-align: left;
    transition: background .2s;
}
.nqm-tuto-toggle:hover { background: rgba(41,182,216,.09); }
.nqm-tuto-toggle-icon { color: var(--kl-cyan); display: flex; flex-shrink: 0; }
.nqm-tuto-chevron {
    margin-left: auto; flex-shrink: 0;
    color: rgba(31,31,31,.3);
    transition: transform .25s;
}
.nqm-tuto-toggle[aria-expanded="true"] .nqm-tuto-chevron { transform: rotate(180deg); }
.nqm-tuto-body {
    display: none;
    padding: 6px 18px 18px;
    background: rgba(41,182,216,.02);
    border-top: 1px solid rgba(41,182,216,.1);
}
.nqm-tuto-body.open { display: block; }
.nqm-tuto-steps {
    display: flex; flex-direction: column; gap: 10px;
    margin: 14px 0 14px;
}
.nqm-tuto-step {
    display: flex; align-items: flex-start; gap: 12px;
    background: #fff; border: 1px solid rgba(31,31,31,.07);
    border-radius: 10px; padding: 12px 14px;
}
.nqm-tuto-num {
    min-width: 26px; height: 26px;
    background: var(--kl-dark); color: var(--kl-cyan);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display); font-size: 12px; font-weight: 800;
    flex-shrink: 0;
}
.nqm-tuto-step > div > strong {
    display: block;
    font-family: var(--font-display); font-size: 13px; font-weight: 700;
    color: #1f1f1f; margin-bottom: 4px;
}
.nqm-tuto-step > div > p {
    margin: 0; font-size: 12px; color: rgba(31,31,31,.45); line-height: 1.6;
}
.nqm-tuto-step > div > p a { color: var(--kl-cyan); font-weight: 600; }
.nqm-tuto-alt {
    background: rgba(31,31,31,.03); border: 1px solid rgba(31,31,31,.07);
    border-radius: 9px; padding: 11px 14px;
    font-size: 12px; color: rgba(31,31,31,.5); line-height: 1.6;
    margin-bottom: 14px;
}
.nqm-tuto-alt strong { color: #1f1f1f; }
.nqm-tuto-alt em { font-style: normal; font-weight: 600; color: var(--kl-cyan-dim); }
.nqm-tuto-cta {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--kl-dark); color: var(--kl-cyan);
    border-radius: 9px; padding: 9px 16px;
    font-family: var(--font-body); font-size: 12px; font-weight: 700;
    text-decoration: none; transition: all .2s;
}
.nqm-tuto-cta:hover {
    background: var(--kl-cyan); color: #fff;
    box-shadow: 0 4px 12px var(--kl-cyan-glow);
}

/* ── Section aide ── */
.nqm-help-section {
    margin-top: 16px;
    border: 1px solid rgba(239,68,68,.14);
    border-radius: 12px;
    overflow: hidden;
}
.nqm-help-toggle {
    width: 100%;
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px;
    background: rgba(239,68,68,.04);
    border: none; cursor: pointer;
    font-family: var(--font-body); font-size: 12.5px; font-weight: 600;
    color: rgba(31,31,31,.5); text-align: left;
    transition: background .2s;
}
.nqm-help-toggle:hover { background: rgba(239,68,68,.07); }
.nqm-help-chevron {
    margin-left: auto; flex-shrink: 0;
    color: rgba(31,31,31,.25);
    transition: transform .25s;
}
.nqm-help-toggle[aria-expanded="true"] .nqm-help-chevron { transform: rotate(180deg); }
.nqm-help-body {
    display: none;
    padding: 6px 16px 16px;
    background: #fff;
    border-top: 1px solid rgba(239,68,68,.1);
}
.nqm-help-body.open { display: block; }
.nqm-help-item {
    padding: 12px 0;
    border-bottom: 1px solid rgba(31,31,31,.06);
}
.nqm-help-item:last-child { border-bottom: none; padding-bottom: 0; }
.nqm-help-item > strong {
    display: block;
    font-family: var(--font-display); font-size: 13px; font-weight: 700;
    color: #1f1f1f; margin-bottom: 5px;
}
.nqm-help-item > p {
    margin: 0; font-size: 12px; color: rgba(31,31,31,.5); line-height: 1.7;
}
.nqm-help-item code {
    background: rgba(31,31,31,.06); border-radius: 4px;
    padding: 1px 5px; font-size: 11px; font-family: monospace;
    color: var(--kl-cyan-dim);
}
.nqm-help-item a { color: var(--kl-cyan); font-weight: 600; }

/* ── Champ URL manuel Google ── */
.nqm-google-manual-field input[type="url"] {
    font-size: 14px !important;
}

/* ================================================================
   ACTIVATION CODE
================================================================ */
.nqm-activation-visual{display:flex;justify-content:center;margin:6px 0 26px;}
.nqm-activation-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--kl-dark);border-radius:18px;padding:24px 36px;position:relative;overflow:hidden;}
.nqm-activation-card::after{content:'';position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:160px;height:160px;background:radial-gradient(circle,rgba(41,182,216,.15),transparent 70%);pointer-events:none;}
.nqm-activation-qr{background:var(--kl-white);border-radius:10px;padding:10px;position:relative;z-index:1;}
.nqm-qr-mock{display:grid;grid-template-columns:repeat(3,18px);grid-template-rows:repeat(3,18px);gap:3px;}
.nqm-qr-mock div{background:var(--kl-dark);border-radius:3px;opacity:.85;}
.nqm-qr-mock div:nth-child(2),.nqm-qr-mock div:nth-child(4),
.nqm-qr-mock div:nth-child(6),.nqm-qr-mock div:nth-child(8){background:var(--kl-white);}
.nqm-activation-arrow{color:var(--kl-white);font-size:18px;font-weight:700;line-height:1;opacity:.5;position:relative;z-index:1;animation:kl-bob 2s ease-in-out infinite;}
@keyframes kl-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
.nqm-activation-code-example{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;z-index:1;}
.nqm-activation-label{font-family:var(--font-body);font-size:10px;color:rgba(245,245,240,.35);text-transform:uppercase;letter-spacing:1.5px;font-weight:600;}
.nqm-activation-sample{font-family:monospace;font-size:20px;font-weight:700;color:var(--kl-white);letter-spacing:6px;background:rgba(255,255,255,.07);padding:8px 20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);}

/* ================================================================
   DASHBOARD
================================================================ */

/* Dashboard gets more breathing room */
.nqm-dashboard.nqm-wrap { max-width: 800px; }

/* ── Neutralise max-width:100%/height:auto que les thèmes WP appliquent aux SVG ── */
.nqm-wrap svg,
.nqm-dashboard svg,
.nqm-modal svg {
    max-width: none !important;
    max-height: none !important;
    width: auto;
    height: auto;
}

/* ── Hero ── */
.nqm-dash-hero {
    background: var(--kl-dark);
    border-radius: var(--kl-radius) var(--kl-radius) 0 0;
    padding: 26px 32px;
    display: flex;
    align-items: center;
    gap: 16px;
    position: relative;
    overflow: hidden;
}
.nqm-dash-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    background-size: 180px;
    pointer-events: none;
    opacity: .5;
}
.nqm-dash-hero::after {
    content: '';
    position: absolute;
    top: -60px; right: -40px;
    width: 240px; height: 240px;
    background: radial-gradient(circle, rgba(41,182,216,.15), transparent 70%);
    pointer-events: none;
}
.nqm-dash-hero-line {
    position: absolute;
    bottom: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(41,182,216,.3), transparent);
}
.nqm-user-avatar {
    width: 48px; height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--kl-cyan), var(--kl-cyan-dim));
    color: var(--kl-dark);
    font-family: var(--font-display);
    font-size: 20px; font-weight: 900;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    position: relative; z-index: 1;
    box-shadow: 0 4px 16px var(--kl-cyan-glow);
}
.nqm-dash-hero-info {
    flex: 1;
    position: relative; z-index: 1;
}
.nqm-dash-hero-info h2 {
    margin: 0 0 3px;
    font-family: var(--font-display);
    font-size: 18px; font-weight: 800;
    color: var(--kl-white);
    letter-spacing: -.3px;
}
.nqm-dash-hero-info p {
    margin: 0;
    color: rgba(245,245,240,.3);
    font-size: 12px;
}
.nqm-hero-company {
    color: rgba(245,245,240,.6);
    font-weight: 600;
    margin-right: 6px;
}
.nqm-hero-company::after { content: '·'; margin-left: 6px; }
.nqm-btn-logout {
    display: flex; align-items: center; gap: 6px;
    color: rgba(245,245,240,.28) !important;
    text-decoration: none;
    font-family: var(--font-body); font-size: 11.5px; font-weight: 600;
    padding: 7px 12px;
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.07);
    transition: all .2s;
    white-space: nowrap; flex-shrink: 0;
    position: relative; z-index: 1;
}
.nqm-btn-logout:hover {
    color: var(--kl-white) !important;
    border-color: rgba(255,255,255,.15);
    background: rgba(255,255,255,.05);
}

/* ── KPI Row ── */
.nqm-kpi-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid rgba(31,31,31,.09);
    border-top: none;
    background: #fff;
}
.nqm-kpi {
    padding: 18px 16px 16px;
    border-right: 1px solid rgba(31,31,31,.07);
    position: relative; overflow: hidden;
    transition: background .2s;
}
.nqm-kpi:last-child { border-right: none; }
.nqm-kpi:hover { background: rgba(41,182,216,.012); }
.nqm-kpi::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
}
.nqm-kpi:nth-child(1)::before { background: var(--kl-cyan); }
.nqm-kpi:nth-child(2)::before { background: var(--kl-success); }
.nqm-kpi:nth-child(3)::before { background: var(--kl-orange); }
.nqm-kpi:nth-child(4)::before { background: var(--kl-purple); }
.nqm-kpi-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 10px;
}
.nqm-kpi-icon svg { width: 14px !important; height: 14px !important; display: block !important; }
.nqm-kpi:nth-child(1) .nqm-kpi-icon { background: rgba(41,182,216,.1); color: var(--kl-cyan); }
.nqm-kpi:nth-child(2) .nqm-kpi-icon { background: rgba(34,197,94,.1); color: var(--kl-success); }
.nqm-kpi:nth-child(3) .nqm-kpi-icon { background: rgba(245,158,11,.1); color: var(--kl-orange); }
.nqm-kpi:nth-child(4) .nqm-kpi-icon { background: rgba(139,92,246,.1); color: var(--kl-purple); }
.nqm-kpi-num {
    display: block;
    font-family: var(--font-display);
    font-size: 26px; font-weight: 900;
    color: #1f1f1f;
    line-height: 1; letter-spacing: -.8px;
    margin-bottom: 4px;
}
.nqm-kpi-label {
    font-size: 10px;
    color: rgba(31,31,31,.35);
    text-transform: uppercase; letter-spacing: .7px; font-weight: 600;
}

/* ── Dashboard Section ── */
.nqm-dash-section {
    background: #f8f8f7;
    border: 1px solid rgba(31,31,31,.08);
    border-top: none;
    padding: 22px 28px;
}

/* ── Plates Header (title + filters + button) ── */
.nqm-plates-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.nqm-plates-header-left {
    display: flex; align-items: center; gap: 8px;
}
.nqm-plates-header-title {
    font-family: var(--font-display);
    font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: rgba(31,31,31,.3);
}
.nqm-plates-count-badge {
    background: rgba(41,182,216,.12);
    color: var(--kl-cyan-dim);
    border: 1px solid rgba(41,182,216,.18);
    border-radius: 20px;
    font-size: 10px; font-weight: 700;
    padding: 2px 8px;
    letter-spacing: .3px;
}
.nqm-plates-header-right {
    display: flex; align-items: center; gap: 8px;
}

/* Filter tabs */
.nqm-filter-tabs {
    display: flex; align-items: center; gap: 2px;
    background: rgba(31,31,31,.05);
    border-radius: 9px;
    padding: 3px;
}
.nqm-filter-tab {
    padding: 5px 10px;
    border: none; background: transparent;
    border-radius: 7px;
    font-family: var(--font-body); font-size: 11px; font-weight: 600;
    color: rgba(31,31,31,.4); cursor: pointer;
    transition: all .18s;
    white-space: nowrap;
    display: flex; align-items: center; gap: 5px;
}
.nqm-filter-tab span {
    background: rgba(31,31,31,.08);
    border-radius: 10px;
    padding: 1px 5px;
    font-size: 10px;
}
.nqm-filter-tab.active {
    background: #fff;
    color: #1f1f1f;
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.nqm-filter-tab.active span {
    background: var(--kl-cyan-ultra);
    color: var(--kl-cyan-dim);
}

/* Add plate button */
.nqm-btn-add-plate {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--kl-dark); color: var(--kl-cyan);
    border: none; border-radius: 9px;
    padding: 7px 13px;
    font-family: var(--font-body); font-size: 11.5px; font-weight: 700;
    cursor: pointer; white-space: nowrap;
    transition: all .2s; flex-shrink: 0;
    text-decoration: none;
}
.nqm-btn-add-plate svg { width: 11px !important; height: 11px !important; flex-shrink: 0; }
.nqm-btn-add-plate:hover {
    background: var(--kl-cyan); color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px var(--kl-cyan-glow);
}

/* ── Plates List (horizontal rows) ── */
.nqm-plates-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ── Plate Row — horizontal card ── */
.nqm-plate-row {
    display: flex;
    align-items: stretch;
    background: #fff;
    border: 1.5px solid rgba(31,31,31,.08);
    border-radius: 14px;
    overflow: hidden;
    transition: all .22s cubic-bezier(.4,0,.2,1);
    animation: kl-row-in .4s cubic-bezier(.4,0,.2,1) both;
}
@keyframes kl-row-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
.nqm-plate-row:hover {
    border-color: rgba(31,31,31,.16);
    box-shadow: 0 4px 20px rgba(0,0,0,.07);
    transform: translateY(-1px);
}

/* Brand panel — colored left section with icon */
.nqm-plate-brand {
    width: 60px;
    flex-shrink: 0;
    background: var(--net-color, var(--kl-cyan));
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.nqm-plate-brand::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(0,0,0,.08) 100%);
}
.nqm-plate-brand svg {
    width: 26px !important; height: 26px !important;
    display: block !important;
    position: relative; z-index: 1;
    flex-shrink: 0;
}
.nqm-plate-brand-emoji {
    font-size: 22px;
    position: relative; z-index: 1;
    filter: drop-shadow(0 1px 3px rgba(0,0,0,.2));
}

/* Main body */
.nqm-plate-body {
    flex: 1;
    padding: 13px 16px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.nqm-plate-body-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}
.nqm-plate-name-area {
    min-width: 0;
}
.nqm-plate-name {
    display: block;
    font-size: 13.5px; font-weight: 700;
    color: #1f1f1f;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    letter-spacing: -.1px;
}
.nqm-plate-meta {
    display: block;
    font-size: 11px; color: rgba(31,31,31,.32);
    margin-top: 2px; font-weight: 500;
}
.nqm-sep { margin: 0 4px; opacity: .5; }

/* Badge */
.nqm-plate-badge {
    padding: 3px 9px; border-radius: 20px;
    font-size: 10px; font-weight: 700; letter-spacing: .3px;
    text-transform: uppercase; white-space: nowrap; flex-shrink: 0;
    display: flex; align-items: center; gap: 5px;
    margin-top: 1px;
}
.nqm-badge-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #16a34a;
    animation: nqm-pulse 2.5s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes nqm-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .5; transform: scale(.85); }
}
.nqm-plate-badge.active {
    background: rgba(34,197,94,.08); color: #16a34a;
    border: 1px solid rgba(34,197,94,.18);
}
.nqm-plate-badge.pending {
    background: rgba(245,158,11,.08); color: #b45309;
    border: 1px solid rgba(245,158,11,.18);
}

/* Stats row */
.nqm-plate-body-stats {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.nqm-plate-stat-item {
    display: flex; align-items: center; gap: 5px;
    font-size: 12px; color: rgba(31,31,31,.5);
    white-space: nowrap;
}
.nqm-plate-stat-item svg { width: 11px !important; height: 11px !important; color: rgba(31,31,31,.25); flex-shrink: 0; }
.nqm-plate-stat-item strong { color: #1f1f1f; font-weight: 700; font-size: 12.5px; }
.nqm-plate-stat-item span { color: rgba(31,31,31,.35); }
.nqm-plate-stat-url { min-width: 0; overflow: hidden; }
.nqm-plate-stat-url a {
    color: var(--kl-cyan-dim); text-decoration: none; font-weight: 500;
    font-size: 11.5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    display: inline-block; max-width: 200px;
    vertical-align: bottom;
}
.nqm-plate-stat-url a:hover { text-decoration: underline; }

/* Scan bar */
.nqm-scan-bar-wrap {
    display: flex; align-items: center; gap: 8px;
}
.nqm-scan-bar {
    flex: 1;
    height: 3px;
    background: rgba(31,31,31,.07);
    border-radius: 99px;
    overflow: hidden;
}
.nqm-scan-bar-fill {
    height: 100%;
    border-radius: 99px;
    transition: width 1s cubic-bezier(.4,0,.2,1);
    opacity: .8;
}
.nqm-scan-bar-pct {
    font-size: 10px;
    color: rgba(31,31,31,.25);
    font-weight: 600;
    letter-spacing: .3px;
    flex-shrink: 0;
    min-width: 28px;
    text-align: right;
}

/* Actions column */
.nqm-plate-actions-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 12px 14px 12px 8px;
    border-left: 1px solid rgba(31,31,31,.06);
    flex-shrink: 0;
}
.nqm-btn-sm {
    display: flex; align-items: center; gap: 5px;
    padding: 6px 11px;
    border-radius: 7px;
    border: 1.5px solid rgba(31,31,31,.09);
    background: transparent;
    font-family: var(--font-body); font-size: 11px; font-weight: 700;
    cursor: pointer; transition: all .15s;
    color: rgba(31,31,31,.4);
    white-space: nowrap;
    min-width: 90px;
}
.nqm-btn-sm svg { width: 11px !important; height: 11px !important; flex-shrink: 0; }
.nqm-btn-sm span { display: block; }
.nqm-btn-sm:hover { transform: translateX(1px); }
.nqm-btn-sm-edit:hover  { border-color: var(--kl-cyan); color: var(--kl-cyan-dim); background: var(--kl-cyan-ultra); }
.nqm-btn-sm-qr:hover    { border-color: rgba(31,31,31,.25); color: #1f1f1f; background: rgba(31,31,31,.03); }
.nqm-btn-sm-copy:hover  { border-color: var(--kl-success); color: #16a34a; background: rgba(34,197,94,.05); }

/* ── Empty State ── */
.nqm-dash-empty { text-align: center; padding: 48px 24px; }
.nqm-dash-empty-icon {
    width: 60px; height: 60px;
    border-radius: 50%;
    background: var(--kl-cyan-ultra);
    border: 2px dashed rgba(41,182,216,.2);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 16px;
    color: var(--kl-cyan);
}
.nqm-dash-empty-icon svg { width: 24px !important; height: 24px !important; }
.nqm-dash-empty h4 {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 16px; font-weight: 700; color: #1f1f1f;
}
.nqm-dash-empty p {
    font-size: 13px; color: rgba(31,31,31,.4);
    line-height: 1.65; margin: 0 auto; max-width: 300px;
}

/* ── Section title (standalone) ── */
.nqm-dash-section-title {
    font-family: var(--font-display);
    font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: rgba(31,31,31,.3);
    margin: 0 0 18px;
    display: flex; align-items: center; gap: 10px;
}
.nqm-dash-section-title::after {
    content: ''; flex: 1; height: 1px;
    background: rgba(31,31,31,.07);
}

/* ── Tutorial accordéon activation (dashboard) ── */
.nqm-dash-activate-tuto {
    margin-bottom: 16px;
    border: 1px solid rgba(41,182,216,.16);
    border-radius: 12px;
    overflow: hidden;
    background: rgba(41,182,216,.03);
}
.nqm-dash-tuto-toggle {
    width: 100%;
    display: flex; align-items: center; gap: 9px;
    padding: 13px 16px;
    background: transparent;
    border: none; cursor: pointer;
    font-family: var(--font-display); font-size: 12.5px; font-weight: 700;
    color: rgba(31,31,31,.55); text-align: left;
    transition: background .2s;
}
.nqm-dash-tuto-toggle:hover { background: rgba(41,182,216,.06); color: var(--kl-cyan-dim); }
.nqm-dash-tuto-chevron {
    margin-left: auto; flex-shrink: 0;
    color: rgba(31,31,31,.2);
    transition: transform .25s;
}
.nqm-dash-tuto-toggle[aria-expanded="true"] .nqm-dash-tuto-chevron { transform: rotate(180deg); }
.nqm-dash-tuto-body {
    display: none;
    padding: 4px 16px 16px;
    border-top: 1px solid rgba(41,182,216,.1);
}
.nqm-dash-tuto-body.open { display: block; }

/* ── Chart Section ── */
.nqm-dash-chart-section {
    background: var(--kl-dark2);
    border: 1px solid rgba(0,0,0,.2);
    border-top: none;
    padding: 22px 28px 26px;
}
.nqm-dash-chart-section .nqm-dash-section-title {
    color: rgba(245,245,240,.22);
}
.nqm-dash-chart-section .nqm-dash-section-title::after {
    background: rgba(255,255,255,.05);
}
.nqm-chart-wrap { position: relative; width: 100%; padding: 4px 0 0; }
.nqm-chart-wrap canvas { display: block; width: 100% !important; }

/* ── Footer ── */
.nqm-dash-footer {
    background: var(--kl-dark);
    border-radius: 0 0 var(--kl-radius) var(--kl-radius);
    padding: 14px 32px;
    display: flex; align-items: center; justify-content: space-between;
    border: 1px solid rgba(0,0,0,.2); border-top: none;
    position: relative; overflow: hidden;
}
.nqm-dash-footer::after {
    content: ''; position: absolute;
    top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(41,182,216,.2), transparent);
}
.nqm-dash-footer-text { color: rgba(245,245,240,.18); font-size: 11px; letter-spacing: .3px; }
.nqm-dash-footer-text span { color: var(--kl-cyan); font-weight: 700; }

/* ================================================================
   MODALS
================================================================ */
.nqm-modal{position:fixed;inset:0;background:rgba(10,10,10,.72);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(8px);}
.nqm-modal.hidden{display:none;}
.nqm-modal-inner{background:#fff;border-radius:var(--kl-radius);width:100%;max-width:520px;position:relative;max-height:90vh;overflow-y:auto;box-shadow:var(--kl-shadow-xl);animation:kl-modal-in .25s cubic-bezier(.4,0,.2,1);}
@keyframes kl-modal-in{from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none}}
.nqm-modal-header{background:var(--kl-dark);padding:22px 28px;border-radius:var(--kl-radius) var(--kl-radius) 0 0;display:flex;align-items:center;justify-content:space-between;}
.nqm-modal-header h3{margin:0;font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--kl-white) !important;}
.nqm-modal-close{background:rgba(255,255,255,.07);border:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(245,245,240,.45);font-size:15px;transition:all .2s;}
.nqm-modal-close:hover{background:rgba(255,255,255,.14);color:var(--kl-white);}
.nqm-modal-body{padding:26px 28px;}
.nqm-edit-network-badge{display:flex;align-items:center;gap:12px;background:var(--kl-dark);border-radius:12px;padding:16px 18px;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--kl-white);}
.nqm-qr-inner .nqm-modal-body{text-align:center;}
#nqm-qr-display{margin:8px auto 12px;}
#nqm-qr-display img{border-radius:14px;border:4px solid #f5f5f0;box-shadow:var(--kl-shadow);}
.nqm-qr-url{font-size:12px;color:rgba(31,31,31,.35);word-break:break-all;margin:0 0 18px;}

/* ================================================================
   CONNEXION [nqm_login]
================================================================ */
#nqm-login-page .nqm-login-card{border-top:none;border-radius:0 0 var(--kl-radius) var(--kl-radius);padding:32px 40px 36px;}
.nqm-login-extras{display:flex;align-items:center;justify-content:space-between;margin:-2px 0 20px;font-size:13px;}
.nqm-remember-row{display:flex;align-items:center;gap:8px;cursor:pointer;color:rgba(31,31,31,.42);font-size:13px;font-weight:500;}
.nqm-remember-row input[type="checkbox"]{width:16px;height:16px;accent-color:var(--kl-cyan);cursor:pointer;}
.nqm-forgot-link{color:var(--kl-cyan) !important;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .2s;}
.nqm-forgot-link:hover{opacity:.7;}

/* ================================================================
   MISC
================================================================ */
.nqm-box{background:#fff;border:1px solid rgba(31,31,31,.08);border-radius:var(--kl-radius);padding:28px;text-align:center;font-size:15px;}
.nqm-error{border-color:rgba(239,68,68,.14);background:#fff5f5;color:var(--kl-danger);}
.nqm-success{border-color:rgba(34,197,94,.18);background:#f0fdf4;color:#16a34a;}
.nqm-activate-separator{display:flex;align-items:center;gap:12px;margin:24px 0 18px;color:rgba(31,31,31,.22);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
.nqm-activate-separator::before,.nqm-activate-separator::after{content:'';flex:1;height:1px;background:rgba(31,31,31,.07);}
.nqm-add-found-simple,.nqm-add-found-plate{display:none;}

/* ================================================================
   ANIMATIONS
================================================================ */
@keyframes kl-bounce{0%{transform:scale(0) rotate(-10deg)}60%{transform:scale(1.15) rotate(4deg)}80%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes kl-spin{to{transform:translateY(-50%) rotate(360deg)}}
@keyframes nqmShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.nqm-shake{animation:nqmShake .5s cubic-bezier(.36,.07,.19,.97);}

/* ================================================================
   RESPONSIVE
================================================================ */
@media(max-width:680px){
    .nqm-step,.nqm-dash-section,.nqm-dash-chart-section{padding-left:18px;padding-right:18px;}
    .nqm-header,.nqm-progress-wrap,.nqm-dash-hero,.nqm-dash-footer{padding-left:18px;padding-right:18px;}
    .nqm-header h2{font-size:32px;letter-spacing:-1px;}
    .nqm-field-row{flex-direction:column;gap:0;}
    .nqm-networks{grid-template-columns:repeat(3,1fr);}
    .nqm-source-grid{grid-template-columns:repeat(3,1fr);}
    .nqm-dot small{display:none;}
    .nqm-modal-inner{border-radius:14px;}
    #nqm-login-page .nqm-login-card{padding:24px 18px;}
    /* KPI 2x2 */
    .nqm-kpi-row{grid-template-columns:repeat(2,1fr);}
    .nqm-kpi:nth-child(2){border-right:none;}
    .nqm-kpi:nth-child(3){border-top:1px solid rgba(31,31,31,.07);}
    .nqm-kpi:nth-child(4){border-top:1px solid rgba(31,31,31,.07);}
    .nqm-kpi-num{font-size:22px;}
    /* Plate rows on mobile */
    .nqm-plate-brand{width:50px;}
    .nqm-plate-brand svg{width:22px !important;height:22px !important;}
    .nqm-plate-stat-url{display:none;}
    .nqm-plates-header{gap:8px;}
    .nqm-filter-tabs{display:none;}
    /* Actions collapse to icons */
    .nqm-plate-actions-col{padding:10px 10px 10px 6px;gap:4px;}
    .nqm-btn-sm{min-width:unset;padding:6px 8px;}
}
@media(max-width:480px){
    .nqm-btn-sm span{display:none;}
    .nqm-btn-sm{min-width:unset;padding:7px 9px;}
    .nqm-plate-body{padding:11px 12px;}
    .nqm-plate-body-stats{gap:8px;}
}

/* ── Lien "J'ai déjà un compte" / "Pas encore de compte" ── */
.nqm-already-account {
    text-align: center;
    margin-top: 18px;
    font-size: 13px;
    color: rgba(31,31,31,.4);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.nqm-already-account a {
    color: var(--kl-cyan) !important;
    font-weight: 700;
    text-decoration: none;
    transition: opacity .2s;
}
.nqm-already-account a:hover { opacity: .7; }

/* ─── Graphique scans ─── */
.nqm-dash-chart-section {
    background: #fff;
    padding-top: 24px;
    padding-bottom: 28px;
}
.nqm-chart-wrap {
    position: relative;
    width: 100%;
    padding: 4px 0 0;
}
.nqm-chart-wrap canvas {
    display: block;
    width: 100% !important;
}

/* ================================================================
   SHORTCODE [nqm_account_link] – Icône header
================================================================ */
.nqm-account-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
    color: inherit;
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    transition: opacity .2s;
    vertical-align: middle;
    line-height: 1;
}
.nqm-account-btn:hover { opacity: .7; }

/* Icône bonhomme (non connecté) */
.nqm-account-btn--guest svg {
    display: block;
    flex-shrink: 0;
}

/* Avatar initiale (connecté) */
.nqm-account-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #29b6d8;
    color: #fff;
    font-weight: 800;
    font-family: 'I Brand', 'DM Sans', sans-serif;
    line-height: 1;
    flex-shrink: 0;
}

/* Label optionnel */
.nqm-account-label {
    /* Masquer sur mobile si nécessaire via votre thème */
}

/* Variante icône seule (sans label) — ajoutez class="icon-only" via Elementor */
.nqm-account-btn.icon-only .nqm-account-label { display: none; }

/* ─── Empêcher le scroll horizontal global ─── */
#nqm-configure,
#nqm-login-page,
.nqm-dashboard {
    overflow-x: hidden;
    max-width: 100%;
}

/* S'assurer que tous les enfants restent dans le conteneur */
#nqm-configure *,
#nqm-login-page *,
.nqm-dashboard * {
    max-width: 100%;
    box-sizing: border-box;
}

/* Exception pour les éléments qui ont besoin de déborder (dropdowns, tooltips) */
#nqm-configure .nqm-places-results,
#nqm-configure .nqm-modal,
.nqm-dashboard .nqm-modal {
    max-width: none;
}
