/* ================================================================
   ICM — Connexion / Inscription (lot F)
   Habillage premium des pages login.php et register.php
   + accents administrables des cartes de plan (plans.php)
   Aucune dépendance externe. Variables : --icm-primary, --icm-primary-d,
   --icm-dark, --icm-font (définies dans css/custom.css).
   ================================================================ */

:root{
    --icm-auth-radius:20px;
    --icm-auth-line:#e6e9f0;
    --icm-auth-ink:#2b3140;
    --icm-auth-mute:#7d8796;
}

/* ------------------------------------------------ Cadre général */
.icm-auth{
    position:relative;
    padding:70px 0 90px;
    background:
        radial-gradient(900px 420px at 12% -6%, rgba(203,153,55,.10), rgba(203,153,55,0) 62%),
        radial-gradient(760px 400px at 92% 8%, rgba(23,31,44,.07), rgba(23,31,44,0) 60%),
        #f7f8fb;
    overflow:hidden;
}
.icm-auth *{box-sizing:border-box;}

.icm-auth-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:34px;
    align-items:start;
    max-width:1040px;
    margin:0 auto;
}
.icm-auth-grid.is-wide{grid-template-columns:minmax(0,1fr) 320px;max-width:1180px;}
.icm-auth-main{min-width:0;}

/* ------------------------------------------------ Carte principale */
.icm-auth-card{
    position:relative;
    background:#fff;
    border:1px solid #edf0f5;
    border-radius:var(--icm-auth-radius);
    padding:40px 42px 34px;
    box-shadow:0 24px 60px rgba(22,32,52,.09), 0 2px 6px rgba(22,32,52,.04);
    font-family:var(--icm-font,inherit);
    animation:icmAuthIn .5s cubic-bezier(.22,.68,.36,1) both;
}
.icm-auth-card::before{
    content:"";
    position:absolute;top:0;left:0;right:0;height:4px;
    border-radius:var(--icm-auth-radius) var(--icm-auth-radius) 0 0;
    background:linear-gradient(90deg,var(--icm-primary,#CB9937),#E6BA56 60%,rgba(230,186,86,.25));
}
@keyframes icmAuthIn{
    from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:none;}
}

/* ------------------------------------------------ En-tête de carte */
.icm-auth-head{text-align:center;margin-bottom:26px;}
.icm-auth-badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:62px;height:62px;border-radius:19px;
    font-size:25px;color:#fff;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    box-shadow:0 12px 26px rgba(174,121,29,.32);
    margin-bottom:16px;
}
.icm-auth-title{
    font-size:26px;font-weight:800;line-height:1.25;
    color:var(--icm-dark,#171f2c);margin:0 0 8px;
}
.icm-auth-sub{
    font-size:14.5px;line-height:1.6;color:var(--icm-auth-mute);
    margin:0 auto;max-width:460px;
}

/* ------------------------------------------------ Puces d'étapes */
.icm-steps{
    display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
    list-style:none;margin:0 0 28px;padding:0;
}
.icm-steps li{
    display:flex;align-items:center;gap:8px;
    background:#f5f7fa;border:1px solid #eaeef4;border-radius:40px;
    padding:6px 14px 6px 7px;
    font-size:12.5px;font-weight:600;color:#5f6a7c;
    transition:.2s;
}
.icm-steps li:hover{border-color:rgba(203,153,55,.5);background:#fff8ef;color:var(--icm-dark,#171f2c);}
.icm-steps-dot{
    display:inline-flex;align-items:center;justify-content:center;
    width:24px;height:24px;border-radius:50%;flex:0 0 auto;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    color:#fff;font-size:11px;
}
.icm-steps-lb{white-space:nowrap;}

/* ------------------------------------------------ En-tête de section */
.icm-sec{
    display:flex;align-items:flex-start;gap:12px;
    margin:30px 0 16px;padding-top:22px;
    border-top:1px solid #f0f2f6;
}
.icm-auth-form > .icm-sec:first-of-type{margin-top:6px;padding-top:0;border-top:0;}
.icm-sec-num{
    flex:0 0 auto;
    display:inline-flex;align-items:center;justify-content:center;
    width:28px;height:28px;border-radius:9px;
    background:rgba(203,153,55,.13);color:var(--icm-primary-d,#AE791D);
    font-size:13px;font-weight:800;
}
.icm-sec-txt{display:block;}
.icm-sec-txt strong{
    display:block;font-size:15.5px;font-weight:800;color:var(--icm-dark,#171f2c);line-height:1.35;
}
.icm-sec-txt strong i{color:var(--icm-primary,#CB9937);margin-right:6px;font-size:14px;}
.icm-sec-txt em{
    display:block;font-style:normal;font-size:12.8px;color:var(--icm-auth-mute);
    margin-top:3px;line-height:1.55;
}

/* ------------------------------------------------ Champs */
.icm-auth-form{margin:0;}
.icm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;}
.icm-col-6{grid-column:span 1;}
.icm-field{margin-bottom:18px;min-width:0;}

.icm-auth .icm-label{
    display:block;font-size:12.5px;font-weight:700;letter-spacing:.2px;
    color:#556071;margin:0 0 7px;
}
.icm-input-wrap{position:relative;display:block;}
.icm-input-ico{
    position:absolute;left:16px;top:50%;transform:translateY(-50%);
    font-size:14px;color:#a9b1c0;pointer-events:none;transition:color .18s ease;z-index:2;
}
.icm-input-wrap:focus-within .icm-input-ico{color:var(--icm-primary,#CB9937);}

.icm-auth .icm-input{
    display:block;width:100%;height:52px;
    padding:0 16px 0 44px;
    font-size:14.5px;font-family:inherit;color:var(--icm-auth-ink);
    background-color:#fbfcfe;
    border:1px solid var(--icm-auth-line);
    border-radius:12px;
    box-shadow:none;
    outline:0;
    transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
    -webkit-appearance:none;appearance:none;
}
.icm-auth .icm-input::placeholder{color:#aeb6c3;}
.icm-auth .icm-input:hover{border-color:#d5dae3;}
.icm-auth .icm-input:focus{
    background-color:#fff;
    border-color:var(--icm-primary,#CB9937);
    box-shadow:0 0 0 4px rgba(203,153,55,.14);
}
.icm-auth .icm-input.has-toggle{padding-right:48px;}

/* Listes déroulantes : flèche personnalisée (SVG inline, aucune requête externe) */
.icm-auth .icm-select{
    padding-right:38px;cursor:pointer;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%2399a2b1' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 15px center;
    background-size:11px 7px;
}

/* Bouton œil (afficher / masquer le mot de passe) */
.icm-eye{
    position:absolute;right:6px;top:50%;transform:translateY(-50%);
    width:38px;height:38px;border:0;border-radius:10px;
    background:transparent;color:#a9b1c0;font-size:14px;
    cursor:pointer;transition:.18s;z-index:3;
}
.icm-eye:hover{background:#f2f4f8;color:var(--icm-primary-d,#AE791D);}
.icm-eye.is-on{color:var(--icm-primary,#CB9937);}

/* Groupe indicatif + numéro */
.icm-phone{display:grid;grid-template-columns:minmax(0,215px) minmax(0,1fr);gap:12px;}
.icm-phone-code,.icm-phone-num{min-width:0;}

/* ------------------------------------------------ Cases à cocher */
.icm-auth .icm-check{
    display:flex;align-items:flex-start;gap:11px;
    font-weight:400;margin:0;cursor:pointer;
    font-size:13.5px;line-height:1.6;color:#55606f;
}
.icm-auth .icm-check.is-block{
    background:#fafbfd;border:1px solid #eef1f6;border-radius:13px;
    padding:14px 16px;margin-bottom:12px;transition:.18s;
}
.icm-auth .icm-check.is-block:hover{border-color:rgba(203,153,55,.45);background:#fffaf3;}
.icm-auth .icm-check input{
    position:absolute;opacity:0;width:0;height:0;margin:0;
}
.icm-check-box{
    flex:0 0 auto;position:relative;
    width:20px;height:20px;margin-top:1px;border-radius:6px;
    border:1.5px solid #ccd3de;background:#fff;
    display:inline-flex;align-items:center;justify-content:center;
    transition:.18s;
}
.icm-check-box i{font-size:10px;color:#fff;opacity:0;transform:scale(.6);transition:.18s;}
.icm-check input:checked + .icm-check-box{
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    border-color:var(--icm-primary-d,#AE791D);
}
.icm-check input:checked + .icm-check-box i{opacity:1;transform:none;}
.icm-check input:focus-visible + .icm-check-box{box-shadow:0 0 0 4px rgba(203,153,55,.2);}
.icm-check-txt{display:block;}
.icm-check-txt a{color:var(--icm-primary-d,#AE791D);font-weight:600;}

/* ------------------------------------------------ Ligne d'options */
.icm-auth-row{
    display:flex;align-items:center;justify-content:space-between;
    gap:14px;flex-wrap:wrap;margin:2px 0 22px;
}

/* ------------------------------------------------ Bouton principal */
.icm-auth .icm-auth-btn{
    display:flex;align-items:center;justify-content:center;gap:10px;
    width:100%;height:54px;border:0;border-radius:13px;
    font-family:inherit;font-size:15px;font-weight:700;letter-spacing:.3px;
    color:#fff;cursor:pointer;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    box-shadow:0 12px 26px rgba(174,121,29,.3);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
    margin-top:6px;
}
.icm-auth .icm-auth-btn i{font-size:13px;transition:transform .2s ease;}
.icm-auth .icm-auth-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(174,121,29,.36);filter:saturate(1.06);}
.icm-auth .icm-auth-btn:hover i{transform:translateX(4px);}
.icm-auth .icm-auth-btn:active{transform:translateY(0);box-shadow:0 8px 18px rgba(174,121,29,.28);}
.icm-auth .icm-auth-btn:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(203,153,55,.28);}

/* ------------------------------------------------ Séparateur & liens */
.icm-auth-sep{
    position:relative;text-align:center;margin:26px 0 18px;
}
.icm-auth-sep::before{
    content:"";position:absolute;left:0;right:0;top:50%;height:1px;
    background:linear-gradient(90deg,rgba(230,233,240,0),#e6e9f0 22%,#e6e9f0 78%,rgba(230,233,240,0));
}
.icm-auth-sep span{
    position:relative;display:inline-block;background:#fff;padding:0 14px;
    font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#aab2c0;
}
.icm-auth-alt{
    text-align:center;font-size:14px;color:var(--icm-auth-mute);margin:0 0 16px;
}
.icm-auth .icm-auth-link{
    color:var(--icm-primary-d,#AE791D);font-weight:600;text-decoration:none;
    transition:color .16s ease;
}
.icm-auth .icm-auth-link:hover,.icm-auth .icm-auth-link:focus{color:var(--icm-dark,#171f2c);text-decoration:none;}
.icm-auth-link.strong{font-weight:800;}
.icm-auth-link i{font-size:10px;margin-left:2px;transition:transform .18s ease;display:inline-block;}
.icm-auth-link:hover i{transform:translateX(3px);}

.icm-auth-note{
    text-align:center;font-size:12.3px;line-height:1.6;color:#9aa2b0;
    margin:0;padding-top:14px;border-top:1px dashed #eef1f6;
}
.icm-auth-note i{color:var(--icm-primary,#CB9937);margin-right:5px;}

/* ------------------------------------------------ Messages */
.icm-auth-alert{
    display:flex;align-items:flex-start;gap:12px;
    border-radius:13px;padding:14px 16px;margin-bottom:22px;
    font-size:13.6px;line-height:1.6;
    animation:icmAuthIn .35s ease both;
}
.icm-auth-alert i{font-size:16px;margin-top:2px;flex:0 0 auto;}
.icm-auth-alert strong{display:block;font-weight:700;}
.icm-auth-alert ul{margin:7px 0 0;padding-left:18px;}
.icm-auth-alert li{margin-bottom:3px;}
.icm-auth-alert.is-error{background:#fdecec;border:1px solid #f5c2c0;color:#c02f28;}
.icm-auth-alert.is-error i{color:#d0342c;}
.icm-auth-alert.is-success{background:#e9f8ef;border:1px solid #b7e4c7;color:#1c7a45;}
.icm-auth-alert.is-success i{color:#1c8a4a;}

/* ------------------------------------------------ Colonne de réassurance */
.icm-auth-side{
    position:sticky;top:96px;
    border-radius:var(--icm-auth-radius);
    padding:34px 28px 30px;
    color:#e8edf5;
    background:
        radial-gradient(420px 220px at 110% -10%, rgba(203,153,55,.28), rgba(203,153,55,0) 65%),
        linear-gradient(160deg,#1d2634,var(--icm-dark,#171f2c) 62%,#121926);
    box-shadow:0 24px 52px rgba(18,25,38,.28);
    animation:icmAuthIn .6s cubic-bezier(.22,.68,.36,1) .08s both;
}
.icm-auth-eyebrow{
    display:inline-block;font-size:11px;font-weight:800;letter-spacing:1.6px;
    text-transform:uppercase;color:var(--icm-primary,#CB9937);margin-bottom:10px;
}
.icm-auth-side-title{
    font-size:19.5px;font-weight:800;line-height:1.4;color:#fff;margin:0 0 22px;
}
.icm-auth-points{list-style:none;margin:0 0 22px;padding:0;}
.icm-auth-points li{
    display:flex;align-items:flex-start;gap:13px;
    padding:13px 0;border-bottom:1px solid rgba(255,255,255,.08);
}
.icm-auth-points li:last-child{border-bottom:0;}
.icm-auth-pico{
    flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:11px;font-size:15px;
    color:var(--icm-primary,#CB9937);
    background:rgba(203,153,55,.14);
    border:1px solid rgba(203,153,55,.2);
}
.icm-auth-points strong{display:block;font-size:14px;font-weight:700;color:#fff;margin-bottom:3px;}
.icm-auth-points em{display:block;font-style:normal;font-size:12.6px;line-height:1.55;color:#9fadc2;}
.icm-auth-side-note{
    font-size:11.6px;line-height:1.6;color:#7f8da3;margin:0;
    padding-top:16px;border-top:1px dashed rgba(255,255,255,.12);
}

/* ------------------------------------------------ Responsive */
@media (max-width:1199px){
    .icm-auth-grid,.icm-auth-grid.is-wide{grid-template-columns:minmax(0,1fr) 300px;gap:26px;}
}
@media (max-width:991px){
    .icm-auth{padding:50px 0 64px;}
    .icm-auth-grid,.icm-auth-grid.is-wide{grid-template-columns:minmax(0,1fr);max-width:680px;}
    .icm-auth-side{display:none;}          /* réassurance masquée sur mobile */
    .icm-auth-card{padding:34px 30px 30px;}
}
@media (max-width:640px){
    .icm-auth{padding:36px 0 50px;}
    .icm-auth-card{padding:28px 20px 24px;border-radius:16px;}
    .icm-auth-title{font-size:22px;}
    .icm-auth-badge{width:54px;height:54px;border-radius:16px;font-size:22px;}
    .icm-grid{grid-template-columns:minmax(0,1fr);gap:0;}
    .icm-phone{grid-template-columns:minmax(0,1fr);}
    .icm-auth-row{flex-direction:column;align-items:flex-start;gap:10px;}
    .icm-steps{gap:6px;}
    .icm-steps li{font-size:11.5px;padding:5px 11px 5px 6px;}
    .icm-steps-dot{width:21px;height:21px;font-size:10px;}
    .icm-sec{margin:24px 0 14px;padding-top:18px;}
}

/* Confort de lecture : pas d'animation si l'utilisateur la refuse */
@media (prefers-reduced-motion:reduce){
    .icm-auth-card,.icm-auth-side,.icm-auth-alert{animation:none;}
    .icm-auth .icm-auth-btn:hover{transform:none;}
}

/* ================================================================
   Cartes de plan — accent de couleur administrable (plans.php)
   La couleur est transmise en style inline : --icm-plan-accent
   ================================================================ */
.icm-plan-tagline{
    font-size:13.5px;line-height:1.55;font-style:italic;
    color:#8a94a6;margin:0 0 12px;
}
.icm-plan-meta li .v.icm-plan-roi{color:var(--icm-plan-accent,var(--icm-primary,#CB9937));}

.icm-plan-card.icm-has-accent::before{
    background:linear-gradient(90deg,var(--icm-plan-accent),color-mix(in srgb,var(--icm-plan-accent) 55%,#fff));
}
.icm-plan-card.icm-has-accent .icm-plan-ico{
    background:linear-gradient(135deg,var(--icm-plan-accent),color-mix(in srgb,var(--icm-plan-accent) 78%,#000));
    box-shadow:0 10px 20px rgba(20,30,50,.22);
}
.icm-plan-card.icm-has-accent .icm-plan-from strong{color:var(--icm-plan-accent);}
.icm-plan-card.icm-has-accent:hover{border-color:var(--icm-plan-accent);}
.icm-plan-card.icm-has-accent.is-featured{border-color:var(--icm-plan-accent);}

/* Repli pour les navigateurs sans color-mix() */
@supports not (color: color-mix(in srgb, red 50%, blue)){
    .icm-plan-card.icm-has-accent::before{background:var(--icm-plan-accent);}
    .icm-plan-card.icm-has-accent .icm-plan-ico{background:var(--icm-plan-accent);}
}

/* ================================================================
   ICM — Refonte inscription & activation (lot G)
   Sélection de formule, formulaire compact deux colonnes,
   choix du canal d'activation, saisie du code.
   ================================================================ */

/* ------------------------------------------ Grille de sélection des formules */
.icm-pickgrid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(258px,1fr));
    gap:22px;
    margin:6px 0 4px;
}
.icm-pick{
    display:flex;flex-direction:column;
    background:#fff;
    border:1px solid #e9edf3;
    border-radius:18px;
    padding:26px 24px 22px;
    box-shadow:0 14px 34px rgba(22,32,52,.06);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.icm-pick:hover{
    transform:translateY(-4px);
    border-color:rgba(203,153,55,.55);
    box-shadow:0 22px 44px rgba(22,32,52,.11);
}
.icm-pick-ico{
    display:inline-flex;align-items:center;justify-content:center;
    width:50px;height:50px;border-radius:15px;margin-bottom:15px;
    font-size:19px;color:#fff;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    box-shadow:0 10px 20px rgba(174,121,29,.26);
}
.icm-pick-name{
    font-size:19px;font-weight:800;color:var(--icm-dark,#171f2c);margin:0 0 10px;
}
.icm-pick-from{
    display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
    padding:9px 12px;margin-bottom:13px;
    background:#fff8ef;border:1px solid #ffe6c4;border-radius:10px;
}
.icm-pick-from span{font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#a5793a;}
.icm-pick-from strong{font-size:16px;font-weight:800;color:var(--icm-primary-d,#AE791D);}
.icm-pick-desc{
    font-size:13.4px;line-height:1.6;color:var(--icm-auth-mute);
    margin:0 0 14px;flex:1 1 auto;
}
.icm-pick-meta{list-style:none;margin:0 0 18px;padding:0;}
.icm-pick-meta li{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:8px 0;border-bottom:1px dashed #eef1f6;font-size:12.8px;
}
.icm-pick-meta li:last-child{border-bottom:0;}
.icm-pick-meta span{color:#8a94a6;font-weight:600;}
.icm-pick-meta b{color:var(--icm-dark,#171f2c);font-weight:700;}
.icm-pick-btn{
    display:flex;align-items:center;justify-content:center;gap:9px;
    height:46px;border-radius:12px;
    font-size:14px;font-weight:700;color:#fff;text-decoration:none;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
    box-shadow:0 10px 22px rgba(174,121,29,.26);
    transition:transform .18s ease, box-shadow .18s ease;
}
.icm-pick-btn:hover,.icm-pick-btn:focus{
    color:#fff;text-decoration:none;transform:translateY(-2px);
    box-shadow:0 16px 30px rgba(174,121,29,.32);
}
.icm-pick-btn i{font-size:12px;transition:transform .18s ease;}
.icm-pick-btn:hover i{transform:translateX(4px);}
.icm-pickalert{max-width:760px;margin-left:auto;margin-right:auto;}

/* ---------------------------------------- Bandeau « formule choisie » */
.icm-planbar{
    display:flex;align-items:center;gap:15px;flex-wrap:wrap;
    padding:14px 18px;margin:0 0 24px;
    border:1px solid #EBD9AE;border-left:4px solid var(--icm-primary,#CB9937);
    border-radius:14px;
    background:linear-gradient(120deg,#fffaf3,#fff);
}
.icm-planbar-ico{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:12px;flex:0 0 auto;
    font-size:16px;color:#fff;
    background:linear-gradient(135deg,var(--icm-primary,#CB9937),var(--icm-primary-d,#AE791D));
}
.icm-planbar-txt,.icm-planbar-amt{display:block;line-height:1.35;}
.icm-planbar-txt{flex:1 1 130px;min-width:0;}
.icm-planbar em,.icm-planbar-amt em{
    display:block;font-style:normal;font-size:10.8px;font-weight:700;
    letter-spacing:.6px;text-transform:uppercase;color:#a5793a;margin-bottom:2px;
}
.icm-planbar-txt strong{font-size:15.5px;font-weight:800;color:var(--icm-dark,#171f2c);}
.icm-planbar-amt strong{font-size:15px;font-weight:800;color:var(--icm-primary-d,#AE791D);white-space:nowrap;}
.icm-planbar-link{
    flex:0 0 auto;font-size:12.6px;font-weight:700;text-decoration:none;
    color:var(--icm-primary-d,#AE791D);
    border:1px dashed rgba(174,121,29,.5);border-radius:9px;padding:7px 12px;
    transition:.18s;
}
.icm-planbar-link:hover,.icm-planbar-link:focus{
    text-decoration:none;color:#fff;border-style:solid;
    background:var(--icm-primary-d,#AE791D);
}

/* ------------------------------------------- Formulaire compact 2 colonnes */
.icm-auth-form.is-compact .icm-field{margin-bottom:15px;}
.icm-auth-form.is-compact .icm-input{height:48px;}
.icm-col-12{grid-column:1 / -1;}
.icm-field.has-err .icm-input{border-color:#e2837c;background-color:#fffafa;}
.icm-field.has-err .icm-input:focus{box-shadow:0 0 0 4px rgba(208,52,44,.14);}
.icm-fe{
    display:block;margin-top:6px;font-size:12.1px;line-height:1.5;color:#c02f28;
}
.icm-fe i{margin-right:4px;font-size:11px;}
.icm-check.is-block.has-err{border-color:#e2837c;background:#fffafa;}

/* Indicatif affiché à droite du champ téléphone */
.icm-dial{
    position:absolute;right:12px;top:50%;transform:translateY(-50%);
    font-size:12.2px;font-weight:700;color:#a9b1c0;
    pointer-events:none;z-index:2;
}
/* Case « identique au téléphone » sous le champ WhatsApp */
.icm-auth .icm-check.icm-same{
    margin-top:8px;font-size:12.6px;color:#6d7787;
}
.icm-auth .icm-check.icm-same .icm-check-box{width:18px;height:18px;border-radius:5px;}

/* Mention de risque en pied de formulaire */
.icm-riskline{
    display:flex;align-items:flex-start;gap:9px;
    font-size:12.4px;line-height:1.6;color:#7a5a1e;
    background:#fff8ef;border:1px solid #EBD9AE;border-radius:11px;
    padding:11px 14px;margin:4px 0 6px;
}
.icm-riskline i{color:var(--icm-primary,#CB9937);margin-top:2px;}

/* ------------------------------------------------ Choix du canal (activate) */
.icm-chan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px;}
.icm-chan-opt{display:block;margin:0;cursor:pointer;font-weight:400;}
.icm-chan-opt input{position:absolute;opacity:0;width:0;height:0;}
.icm-chan-card{
    display:flex;flex-direction:column;gap:11px;height:100%;
    padding:18px 17px;
    border:1.5px solid var(--icm-auth-line);border-radius:15px;background:#fbfcfe;
    transition:.18s;
}
.icm-chan-opt:hover .icm-chan-card{border-color:rgba(203,153,55,.55);background:#fffaf3;}
.icm-chan-opt input:checked + .icm-chan-card{
    border-color:var(--icm-primary,#CB9937);background:#fff8ef;
    box-shadow:0 0 0 4px rgba(203,153,55,.13);
}
.icm-chan-opt input:focus-visible + .icm-chan-card{box-shadow:0 0 0 4px rgba(203,153,55,.28);}
.icm-chan-opt.is-off{opacity:.5;cursor:not-allowed;}
.icm-chan-ico{
    display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;border-radius:13px;flex:0 0 auto;
    font-size:17px;color:var(--icm-primary-d,#AE791D);
    background:rgba(203,153,55,.14);border:1px solid rgba(203,153,55,.22);
}
.icm-chan-txt{display:block;}
.icm-chan-txt strong{display:block;font-size:15px;font-weight:800;color:var(--icm-dark,#171f2c);margin-bottom:4px;}
.icm-chan-txt em{display:block;font-style:normal;font-size:12.6px;line-height:1.55;color:var(--icm-auth-mute);}
.icm-chan-txt b{display:block;margin-top:7px;font-size:13px;font-weight:700;color:var(--icm-primary-d,#AE791D);}

/* ------------------------------------------------ Attente / envoi effectué */
.icm-wait{
    text-align:center;padding:22px 18px;margin-bottom:20px;
    border:1px dashed #e0e5ee;border-radius:15px;background:#fafbfd;
}
.icm-wait-ico{
    display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;border-radius:16px;margin-bottom:12px;
    font-size:20px;color:var(--icm-primary-d,#AE791D);
    background:rgba(203,153,55,.13);border:1px solid rgba(203,153,55,.22);
}
.icm-wait p{font-size:13.6px;line-height:1.65;color:var(--icm-auth-mute);margin:0;}
.icm-wait strong{display:block;margin-top:8px;font-size:15px;color:var(--icm-dark,#171f2c);}

/* Saisie du code à 6 chiffres */
.icm-auth .icm-input.icm-otp{
    text-align:center;letter-spacing:.5em;font-size:22px;font-weight:800;
    padding-left:44px;padding-right:20px;height:60px;color:var(--icm-dark,#171f2c);
}
.icm-auth .icm-input.icm-otp::placeholder{letter-spacing:.5em;font-weight:600;color:#d3d8e1;}

/* Actions secondaires (renvoyer / changer de canal) */
.icm-actrow{
    display:flex;align-items:center;justify-content:center;gap:10px;
    flex-wrap:wrap;margin:18px 0 6px;
}
.icm-actrow form{margin:0;}
.icm-linkbtn{
    display:inline-flex;align-items:center;gap:7px;
    border:1px solid var(--icm-auth-line);border-radius:10px;background:#fff;
    padding:9px 14px;font-family:inherit;font-size:12.8px;font-weight:700;
    color:#5f6a7c;cursor:pointer;transition:.18s;
}
.icm-linkbtn i{font-size:11.5px;color:var(--icm-primary,#CB9937);}
.icm-linkbtn:hover:not(:disabled){border-color:rgba(203,153,55,.55);color:var(--icm-dark,#171f2c);background:#fffaf3;}
.icm-linkbtn:disabled{opacity:.55;cursor:not-allowed;}

/* ------------------------------- Encart de développement (jamais en prod) */
.icm-devbox{
    border:1.5px dashed #7c5cff;border-radius:14px;
    background:#f6f4ff;padding:15px 17px;margin-bottom:20px;text-align:center;
}
.icm-devbox-tag{
    display:inline-block;margin-bottom:8px;
    font-size:10.8px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;
    color:#fff;background:#7c5cff;border-radius:20px;padding:4px 12px;
}
.icm-devbox p{font-size:12.3px;line-height:1.6;color:#5b5484;margin:0 0 10px;}
.icm-devbox-code{
    display:inline-block;font-size:26px;font-weight:800;letter-spacing:.36em;
    color:#41338f;background:#fff;border:1px solid #ddd6ff;border-radius:11px;
    padding:9px 12px 9px 20px;
}

/* ------------------------------------------------------------ Responsive */
@media (max-width:640px){
    .icm-pickgrid{grid-template-columns:minmax(0,1fr);gap:16px;}
    .icm-chan{grid-template-columns:minmax(0,1fr);}
    .icm-planbar{gap:11px;padding:13px 14px;}
    .icm-planbar-amt{flex:1 1 100%;}
    .icm-planbar-link{flex:1 1 100%;text-align:center;}
    .icm-auth .icm-input.icm-otp{font-size:19px;letter-spacing:.35em;height:54px;}
    .icm-devbox-code{font-size:21px;letter-spacing:.26em;}
}

/* =====================================================================
   HARMONISATION DES FORMULAIRES D'AUTHENTIFICATION
   Champs et boutons plus compacts, icônes rapprochées du texte.
   Ce bloc est volontairement placé en fin de fichier : il s'applique
   après les règles d'origine, sans avoir à les modifier une à une.
   ===================================================================== */

/* ---- Carte et gabarit : moins large, moins de vide ------------------- */
.icm-auth-grid,
.icm-auth-grid.is-wide{max-width:940px;grid-template-columns:minmax(0,1fr) 300px;gap:28px;}
.icm-auth .icm-auth-card{padding:30px 32px 26px;}

/* ---- Champs : plus bas, plus fins ----------------------------------- */
.icm-auth .icm-input,
.icm-auth .icm-auth-form.is-compact .icm-input{
    height:44px;
    padding:0 14px 0 38px;
    font-size:14px;
    border-radius:10px;
}
/* L'icône se rapproche du texte : 13 px du bord, 38 px de retrait. */
.icm-auth .icm-input.has-toggle{padding-right:42px;}
.icm-auth .icm-eye{right:5px;width:34px;height:34px;font-size:13px;border-radius:8px;}
.icm-auth .icm-select{padding-right:34px;background-position:right 13px center;background-size:10px 6px;}

/* ---- Libellés et espacements ---------------------------------------- */
.icm-auth .icm-label{font-size:11.5px;margin:0 0 5px;}
.icm-auth .icm-field,
.icm-auth .icm-auth-form.is-compact .icm-field{margin-bottom:14px;}

/* ---- Bouton principal : largeur du contenu, plus centré ------------- */
.icm-auth .icm-auth-btn{
    width:auto;
    min-width:210px;
    max-width:100%;
    height:44px;
    padding:0 30px;
    margin:12px auto 0;
    font-size:14.5px;
    border-radius:10px;
    box-shadow:0 8px 18px rgba(174,121,29,.24);
}
.icm-auth .icm-auth-btn:hover{box-shadow:0 12px 24px rgba(174,121,29,.3);}
.icm-auth .icm-auth-btn:active{box-shadow:0 5px 12px rgba(174,121,29,.22);}

/* ---- Cases à cocher : le gabarit met les <label> en majuscules ------ */
.icm-auth .icm-check,
.icm-auth .icm-check-txt{text-transform:none;letter-spacing:0;}
.icm-auth .icm-check.is-block{padding:12px 14px;border-radius:11px;margin-bottom:10px;}

/* ---- Code à usage unique -------------------------------------------- */
.icm-auth .icm-input.icm-otp{height:52px;font-size:20px;}

/* ---- Mobile : on garde un bouton pleine largeur, plus atteignable --- */
@media (max-width:640px){
    .icm-auth .icm-auth-card{padding:24px 18px 22px;}
    .icm-auth .icm-auth-btn{width:100%;min-width:0;padding:0 18px;}
    .icm-auth .icm-input,
    .icm-auth .icm-auth-form.is-compact .icm-input{height:46px;font-size:15px;}
}

/* ---- Bandeau « formule choisie » : tout tient sur une ligne ---------- */
.icm-auth .icm-planbar{gap:12px;padding:11px 14px;margin-bottom:20px;border-radius:12px;}
.icm-auth .icm-planbar-ico{width:34px;height:34px;border-radius:10px;font-size:14px;}
.icm-auth .icm-planbar em{font-size:9.8px;letter-spacing:.5px;margin-bottom:1px;}
.icm-auth .icm-planbar-txt{flex:1 1 90px;}
.icm-auth .icm-planbar-txt strong{font-size:14.5px;}
.icm-auth .icm-planbar-amt strong{font-size:14px;}
.icm-auth .icm-planbar-link{font-size:12px;padding:6px 10px;border-radius:8px;}
/* Sous 640 px on repasse volontairement sur deux lignes : plus lisible. */
@media (max-width:640px){
    .icm-auth .icm-planbar-amt{flex:1 1 100%;}
    .icm-auth .icm-planbar-link{flex:1 1 100%;text-align:center;}
}

/* ---- Centrage vertical fiable des icônes de champ -------------------
   « top:50% + translateY(-50%) » centre la BOÎTE de l'élément, pas le
   glyphe, dont la chasse verticale varie d'une icône à l'autre. On étire
   l'icône sur toute la hauteur du champ et on centre en flex : le rendu
   est identique quel que soit le pictogramme. */
/* Spécificité volontairement élevée : css/icm-pages.css cible
   « .icm-field .icm-input-wrap>i » et est chargée après cette feuille. */
.icm-auth .icm-field .icm-input-wrap > i.icm-input-ico{
    left:13px;font-size:13px;
    top:0;bottom:0;height:auto;transform:none;
    display:flex;align-items:center;line-height:1;
}
.icm-auth .icm-eye{
    top:50%;transform:translateY(-50%);
    display:inline-flex;align-items:center;justify-content:center;line-height:1;
}

/* ---- Rétablissement des bascules responsives ------------------------
   Indispensable : les media queries n'ajoutent pas de spécificité, donc
   le bloc d'harmonisation ci-dessus écraserait les règles d'origine. */
@media (max-width:1199px){
    .icm-auth-grid,
    .icm-auth-grid.is-wide{grid-template-columns:minmax(0,1fr) 290px;gap:24px;}
}
@media (max-width:991px){
    .icm-auth-grid,
    .icm-auth-grid.is-wide{grid-template-columns:minmax(0,1fr);max-width:620px;}
    .icm-auth-side{display:none;}
}
