/* ============================================================
   style.css — iCanSend
   Structure :
     [1] CHARTE exemple-ui — déclinée pour iCanSend : les composants
         non utilisés par les pages sont retirés à la génération
         (variables, reset, header/footer, boutons, features,
         card/form, legal, proxy, compare, base typographique)
     [2] Extensions partagées :
         pont de variables legacy · composants transfert/diagrammes
         comparatif · outils (paire/licence/coupon/répertoire)
         dev2 scopé · no-proxy/privaterelay · responsive consolidé
     [3] Sections scopées générées : guide (pg-doc),
         tarifs (pg-pricing) — règles mortes purgées, @media groupés
     [4] Alignement final des tokens d'action sur le navy
   Conventions : une seule déclaration par composant ; les variantes
   d'écran sont regroupées par condition en fin de section.
   ============================================================ */
:root{--bg:#f5f6fa; --surface:#ffffff; --ink:#1c1c2e; --muted:#5f6079; --navy:#312e81; --navy-deep:#1e1b4b; --accent:#4f46e5; --line:#e4e5f0; --radius:16px; --shadow:0 10px 30px rgba(49,46,129,.08);}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}html:lang(fr) .en{display:none !important}html:lang(en) .fr{display:none !important}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}img{max-width:100%;display:block}.site-header{position:sticky;top:0;z-index:10;background:rgba(245,246,250,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.8rem;padding-bottom:.8rem}.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-weight:800;font-size:1.2rem;letter-spacing:-.02em}.brand img{height:2rem}.nav-links{display:flex;align-items:center;gap:1.4rem}.nav-links a{color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:600}.nav-links a:hover{color:var(--navy)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:10px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-deep);box-shadow:0 8px 20px rgba(49,46,129,.25)}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center;max-width:1100px;margin:0 auto;padding:4rem 1.5rem}.hero h1{font-size:3rem;font-weight:800;color:var(--navy);letter-spacing:-.03em;line-height:1.1;margin-bottom:1rem}.hero p.lead{font-size:1.2rem;color:var(--muted);margin-bottom:2rem;max-width:30rem}.section{padding:3.5rem 1.5rem}.section.alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}.feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.feature:hover{transform:translateY(-3px);border-color:var(--accent)}.feature .icon{width:2.6rem;height:2.6rem;border-radius:10px;background:rgba(79,70,229,.14);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.feature .icon svg{width:1.35rem;height:1.35rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.feature h3{font-size:1.05rem;color:var(--navy);margin-bottom:.4rem}.feature p{font-size:.92rem;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.step{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}.step .num{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:1rem}.step h3{font-size:1.05rem;color:var(--navy);margin-bottom:.4rem}.step p{font-size:.92rem;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}.card h2{font-size:1.6rem;color:var(--navy);margin-bottom:.5rem}.input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;color:var(--ink);font-size:1rem;outline:none;transition:border-color .15s ease}.input:focus{border-color:var(--accent)}.input:invalid{border-color:#c0392b}.card .hint{margin-top:.5rem}.card .error{min-height:1.2rem}.recent{margin-top:1.5rem}.recent h3{font-size:.85rem;color:var(--navy);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.8rem}.recent .name{font-weight:700;color:var(--navy)}.recent .url{color:var(--muted);font-size:.75rem}.site-footer{background:var(--navy-deep);color:#c7cdf5;padding:2rem 1.5rem;text-align:center;font-size:.9rem}.site-footer a{color:var(--accent);text-decoration:none}.install{display:none;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;min-height:100vh;padding:2rem}.install:not([hidden]){display:flex}.install img{height:6rem}.install p{color:var(--muted);font-size:1rem}.footer-nav{display:flex;justify-content:center;gap:1.4rem;margin-bottom:.8rem}.footer-nav a{color:var(--accent);text-decoration:none;font-weight:600}.footer-nav a:hover{text-decoration:underline}.legal-page{max-width:860px;margin:0 auto;padding:3rem 1.5rem}.legal-page h1{font-size:2.1rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:.6rem;text-align:center}.legal-page .legal-sub{color:var(--muted);font-size:1.05rem;text-align:center;margin-bottom:2rem}.legal-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-bottom:2rem}.legal-nav a{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;color:var(--navy);text-decoration:none;font-size:.9rem;font-weight:600;box-shadow:var(--shadow)}.legal-nav a:hover{border-color:var(--accent)}.legal-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;margin-bottom:1.5rem}.legal-section h2{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:2px solid var(--line)}.legal-section h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin:1.2rem 0 .4rem}.legal-section p{color:var(--muted);line-height:1.7;margin-bottom:.8rem}.legal-section ul{color:var(--muted);line-height:1.7;padding-left:1.2rem;margin-bottom:.8rem}.legal-section li{margin-bottom:.3rem}.proxy-page{max-width:900px;margin:0 auto;padding:3rem 1.5rem}.proxy-page h1{font-size:2.1rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:.6rem;text-align:center}.proxy-page .proxy-sub{color:var(--muted);font-size:1.05rem;text-align:center;margin-bottom:2rem}.proxy-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;margin-bottom:1.5rem}.proxy-section h2{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:2px solid var(--line)}.proxy-section h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin:1.2rem 0 .4rem}.proxy-section p{color:var(--muted);line-height:1.7;margin-bottom:.8rem}.proxy-section ul,.proxy-section ol{color:var(--muted);line-height:1.7;padding-left:1.2rem;margin-bottom:.8rem}.proxy-section li{margin-bottom:.3rem}.proxy-section code{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.1rem .35rem;font-family:ui-monospace,Consolas,monospace;font-size:.85em;color:var(--navy)}.compare-page{max-width:1100px;margin:0 auto;padding:3rem 1.5rem}.compare-page h1{font-size:2.3rem;font-weight:800;color:var(--navy);letter-spacing:-.03em;text-align:center;line-height:1.15;margin-bottom:.8rem}table.compare{width:100%;border-collapse:collapse;min-width:900px;font-size:.83rem}.compare th,.compare td{border:1px solid var(--line);padding:.7rem .8rem;text-align:left;vertical-align:top}.compare thead th{background:var(--navy);color:#fff;font-weight:700;font-size:.9rem;line-height:1.3}.compare th.crit,.compare td.crit{background:var(--bg);font-weight:700;color:var(--navy);white-space:nowrap;font-size:.82rem}.diff{display:flex;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;box-shadow:var(--shadow)}.diff .icon{flex:none;width:2.4rem;height:2.4rem;border-radius:10px;background:rgba(79,70,229,.14);color:var(--navy);display:flex;align-items:center;justify-content:center}.diff .icon svg{width:1.2rem;height:1.2rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.diff strong{color:var(--navy);display:block;margin-bottom:.15rem}.diff p{color:var(--muted);font-size:.92rem}.pick{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.pick h3{font-size:1.05rem;color:var(--navy);margin-bottom:.2rem}.pick ul{list-style:none;margin:0 0 .9rem}.pick li{color:var(--muted);font-size:.88rem;padding-left:1.1rem;position:relative;margin-bottom:.35rem}.pick li::before{content:"";position:absolute;left:0;top:.45em;width:.4rem;height:.4rem;border-radius:50%;background:var(--accent)}label{display: block; color: var(--muted, #5f6079); font-size: 0.85rem; margin: 0.5rem 0 0.25rem;}input,select,textarea{width: 100%; box-sizing: border-box; background: var(--surface, #fff); border: 1px solid var(--line, #e4e5f0); border-radius: 6px; padding: 0.6rem; color: var(--ink, #1c1c2e); font-size: 0.95rem; margin-bottom: 0.25rem;}input:focus,select:focus,textarea:focus{outline: none; border-color: var(--accent, #4f46e5);}button{background: var(--navy, #312e81); border: none; border-radius: 6px; padding: 0.6rem 1rem; color: #fff; font-size: 0.9rem; font-weight: 600; cursor: pointer; margin: 0.25rem; transition: background 0.15s ease;}button:hover{background: var(--navy-deep, #1e1b4b);}button.danger{background: #e5534b;}button.danger:hover{background: #c92a2a;}table{width: 100%; border-collapse: collapse; font-size: 0.9rem;}th,td{text-align: left; padding: 0.5rem; border-bottom: 1px solid var(--line, #e4e5f0); vertical-align: top;}th{color: var(--muted, #5f6079); font-size: 0.8rem; text-transform: uppercase;}tr:hover{background: rgba(49, 46, 129, 0.03);}.badge{padding: 0.15rem 0.5rem; border-radius: 999px; font-size: 0.75rem; white-space: nowrap;}.muted{color: var(--muted, #5f6079); font-size: 0.8rem;}pre{background: var(--bg, #f5f6fa); border: 1px solid var(--line, #e4e5f0); border-radius: 6px; padding: 0.75rem; overflow: auto; font-size: 0.8rem; max-height: 500px; white-space: pre-wrap; word-break: break-word;}.hint{color: var(--muted, #5f6079); font-size: 0.75rem; margin-top: 0.25rem;}.error{color: #c62828; font-size: 0.85rem; margin-top: 0.5rem;}.ok{color: #1a7f37; font-size: 0.85rem; margin-top: 0.5rem;}.row{display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap;}a.link{color: var(--accent, #4f46e5); cursor: pointer; text-decoration: underline;}.tree{margin: 0; padding: 0; list-style: none;}.tree li{padding: 0.15rem 0;}.tree a{color: var(--accent, #4f46e5); cursor: pointer; text-decoration: none;}.tree a:hover{text-decoration: underline;}@media (max-width:900px){.hero{grid-template-columns:1fr;padding-top:2.5rem;text-align:center}.hero p.lead{margin-left:auto;margin-right:auto}.steps{grid-template-columns:1fr}.nav-links{display:none}}@media (max-width:720px){.compare-page h1{font-size:1.8rem}.compare th.crit,.compare td.crit{position:sticky;left:0;z-index:2;box-shadow:2px 0 0 var(--line)}.compare thead th.crit{background:var(--navy);color:#fff}.diff{flex-direction:column}}@media (max-width: 768px){th,td{padding: 0.35rem;}}
/* ===== Fin charte exemple-ui — extensions partagées ci-dessous ===== */

/* =========================================================
   Pont de variables legacy -> charte (pages migrées)
   ========================================================= */
:root{
	--primary-color:var(--navy);
	--danger-color:#c0392b;
	--success-color:#1a7f37;
	--light-gray-color:var(--line);
	--medium-gray-color:#c3c8d8;
	--dark-gray-color:var(--muted);
	--text-color:var(--ink);
	--background-color:var(--bg);
	--container-bg-color:var(--surface);
	--border-radius:var(--radius);
	--box-shadow:var(--shadow);
	/* états sémantiques (source unique) */
	--ok:#1a7f37;      --ok-bg:#e6f7ec;
	--err:#c0392b;     --err-bg:#ffe9e9;
	--err-strong:#c62828;
	--warn:#9a6700;    --warn-bg:#fff6e0;   --warn-line:#e3b341;
}
.hidden{display:none !important}

/* Pied de page charte : copyright lisible (pas de bleu sur bleu) */
.site-footer span,.site-footer span a:link,.site-footer span a:visited{color:#b9b7d0}
.site-footer span a{text-decoration:none;border-bottom:1px dotted rgba(185,183,208,.45)}
.site-footer span a:hover{color:#fff;border-bottom-color:#fff}
/* liens de navigation du footer : même teinte que le copyright, y compris :visited
   (les blocs scopés body.pg-* redéfinissent a:visited avec une spécificité supérieure) */
.site-footer .footer-nav a:link,.site-footer .footer-nav a:visited{color:#b9b7d0}
.site-footer .footer-nav a:hover{color:#fff;text-decoration:underline}

/* Utilitaires largeur (pages outil, classe posée sur <body>) */
.pg-w900{max-width:940px;margin:0 auto;padding:1.5rem 1rem}
.pg-w600{max-width:640px;margin:2rem auto;padding:1.5rem 1rem}
.pg-w540{max-width:580px;margin:2rem auto;padding:1rem}
.pg-w540 h2{color:var(--navy)}
.pg-w540 label{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}
.pg-net h1,.pg-net h2,.pg-net h3{color:var(--navy);text-align:center;margin:0}
.pg-net h4{color:var(--ink);text-align:left;font-size:1.1rem;margin:0 0 .5rem}
.pg-net p{color:var(--muted)}
.pg-net section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.pg-net section:first-of-type{margin-top:2.5rem;padding-top:0;border-top:none}
.pg-rep h1{color:var(--navy);text-align:center}
.pg-rep h2{color:var(--navy)}

/* Zone de dépôt et vues masquées jusqu'à l'appairage (outils) */
body.pg-tool #fileSelectorContainer{border:2px dashed var(--medium-gray-color);border-radius:var(--radius);background:var(--surface);padding:20px;text-align:center;margin-bottom:20px;cursor:pointer}
body.pg-tool #fileSelector,body.pg-tool #mainContent{display:none}

/* =========================================================
   Conteneur générique des outils (dev2, no-proxy, privaterelay)
   ========================================================= */
.app-container{max-width:900px;margin:1rem auto;padding:1.5rem 2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.main-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:1.5rem;gap:1rem}
.app-logo{height:40px;width:auto;display:block}
.page-header{text-align:center;margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;gap:1rem}
.page-header .app-logo{height:45px}
.site-header .app-logo{height:34px;width:auto}

/* =========================================================
   Composants transfert (transmit.html, dev2.html)
   ========================================================= */
.progressContainer{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.progressBar,#globalProgressBar{height:20px;background:var(--accent);color:#fff;text-align:center;line-height:20px;font-weight:600;width:0%;border-radius:999px;transition:width .3s ease-out;white-space:nowrap}
#globalProgressContainer{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:999px;margin-bottom:20px;padding:2px}
.remove-btn{background:var(--err);color:#fff;border:none;border-radius:50%;width:24px;height:24px;line-height:24px;text-align:center;padding:0;font-weight:bold;cursor:pointer}
.cancel-btn{background:transparent;color:var(--muted);border:1px solid var(--line)}
.cancel-btn:hover{background:rgba(49,46,129,.06);color:var(--navy)}

/* =========================================================
   Diagrammes P2P + icônes masque (security*, dev2, no-proxy)
   ========================================================= */
.diagram-container{margin:2rem 0;text-align:center}
.diagram-svg{max-width:100%;height:auto;width:500px}
/* tailles/couleurs des textes des schémas P2P (la règle globale "svg text"
   de la charte est retirée à la génération : les libellés gravés dans les
   icônes SVG reprennent leur couleur naturelle currentColor) */
.diagram-container text{font-size:3.1px;fill:var(--ink)}
.diagram-container .B{stroke-width:.5}
.diagram-container .C{font-family:sans-serif}
.diagram-container .D{text-anchor:middle}
.diagram-container .E{fill:var(--navy)}
.diagram-container .F{stroke:var(--navy)}
.diagram-container .G{font-size:3.2px}
.small-text{font-family:sans-serif;font-size:3px;text-anchor:middle}
.medium-text{font-family:sans-serif;font-size:5px;text-anchor:middle}
.label-text{font-family:sans-serif;font-size:6px;text-anchor:middle;fill:var(--navy)}
.box{fill:#fff;stroke:var(--navy);stroke-width:.5}
.line{fill:none;stroke:var(--navy);stroke-width:.5}
.arrow{fill:var(--navy)}
.final-quote-section,.compare-page .info-panel{margin-top:3rem;margin-bottom:3rem;background:var(--navy);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.final-quote-section{padding:3rem 2rem;text-align:center}
.final-quote-section h2{color:#fff;font-size:1.9rem;line-height:1.35;max-width:26ch;margin:0 auto;text-align:center}
.proxy-page table.compare{min-width:0;width:100%}
.proxy-page .compare th,.proxy-page .compare td{padding:.7rem .8rem}
.proxy-page .compare td:nth-child(2){background:#eceefe;border-color:rgba(79,70,229,.45);font-weight:600;color:var(--navy)}
.proxy-page .compare thead th:nth-child(2){background:var(--navy-deep)}
.feature-svg{width:1.9rem;height:1.9rem;color:var(--navy);margin-bottom:1rem}
.feature-icon{width:1.9rem;height:1.9rem;background-color:var(--navy);margin-bottom:1rem;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.icon-no-server,.icon-private{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>')}
.icon-integrity{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><path d="M5 12.5L9 16.5L14 11.5"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><path d="M5 12.5L9 16.5L14 11.5"/></svg>')}
.icon-attack-vector{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>')}
.icon-direct-tunnel{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5"></path><path d="M8 21H3v-5"></path><path d="M21 3l-7 7"></path><path d="M3 21l7-7"></path></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5"></path><path d="M8 21H3v-5"></path><path d="M21 3l-7 7"></path><path d="M3 21l7-7"></path></svg>')}
.icon-ephemeral{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>')}
.icon-e2ee{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>')}
.icon-limitless{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>')}
.icon-no-cookies{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a10 10 0 1 0 10 10A10.01 10.01 0 0 0 12 2zm.5 15.5a1 1 0 1 1-1-1 1 1 0 0 1 1 1zM12 5a3.5 3.5 0 0 0-3.5 3.5v1a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-1A3.5 3.5 0 0 0 12 5zm-1.5 3a1 1 0 1 1-1-1 1 1 0 0 1 1 1z"/><line x1="1" y1="1" x2="23" y2="23"></line></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a10 10 0 1 0 10 10A10.01 10.01 0 0 0 12 2zm.5 15.5a1 1 0 1 1-1-1 1 1 0 0 1 1 1zM12 5a3.5 3.5 0 0 0-3.5 3.5v1a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-1A3.5 3.5 0 0 0 12 5zm-1.5 3a1 1 0 1 1-1-1 1 1 0 0 1 1 1z"/><line x1="1" y1="1" x2="23" y2="23"></line></svg>')}
.icon-no-profile{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle><line x1="1" y1="1" x2="23" y2="23"></line></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle><line x1="1" y1="1" x2="23" y2="23"></line></svg>')}
.icon-no-history,.icon-simple{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline><line x1="1" y1="1" x2="23" y2="23"></line></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline><line x1="1" y1="1" x2="23" y2="23"></line></svg>')}
.icon-sw-pipe{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>')}

/* =========================================================
   Page comparatif (compare.html)
   ========================================================= */
.compare-page .comparison-wrapper{margin-top:2rem;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.compare-page .comp-table{width:100%;border-collapse:collapse;min-width:900px;font-size:.95rem}
.compare-page .comp-table th{background:var(--navy);color:#fff;font-weight:700;text-align:center;padding:1.1rem}
.compare-page .comp-table td{padding:1.1rem;border-bottom:1px solid var(--line);text-align:center;color:var(--muted)}
.compare-page .comp-table tbody tr:last-child td{border-bottom:none}
.compare-page p.intro{text-align:center;max-width:46rem;margin:0 auto 2.6rem;font-size:1.1rem;color:var(--muted)}
.compare-page .comp-table th{background:var(--navy);color:#fff;font-weight:700;text-align:center}
.compare-page .comp-table td{text-align:center;color:var(--muted)}
.compare-page .superior-row{background:rgba(79,70,229,.06) !important}
.compare-page .superior-row td{color:var(--navy) !important;font-weight:600}
.compare-page .superior-value{font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.85em}
.compare-page .feature strong{color:var(--navy)}
.compare-page .info-panel{padding:2.5rem}
.compare-page .info-panel h3{color:#fff;margin:0 0 1.2rem;font-size:1.5rem;text-align:left}
.compare-page .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.compare-page .info-item h5{font-size:1.05rem;margin:0 0 .5rem;color:#c7cdf5}
.compare-page .info-item p{font-size:.92rem;color:#dfe2fc;margin:0}

/* =========================================================
   Outil : paire WebRTC (testpair.html)
   ========================================================= */
.code-box{display:flex;justify-content:space-between;align-items:center;font-size:1.5rem;font-weight:700;letter-spacing:.2rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;color:var(--navy)}
.input-with-button{display:flex;align-items:center;margin-top:.5rem}
.input-with-button input{flex-grow:1;margin:0;border-top-right-radius:0;border-bottom-right-radius:0}
.input-with-button button{width:4rem;margin:0;border-top-left-radius:0;border-bottom-left-radius:0;font-size:1.4rem;padding:.35rem}
#messages{height:150px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.5rem}
#custom-alert{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(28,28,46,.9);color:#fff;padding:1rem 2rem;border-radius:12px;box-shadow:0 20px 50px rgba(30,27,75,.35);z-index:1000;opacity:0;pointer-events:none;transition:opacity .5s ease-in-out}
#custom-alert.visible{opacity:1;pointer-events:auto}
.message-form,.code-actions{display:flex;gap:.5rem}
.code-actions button{width:auto;background:transparent;border:1px solid var(--line);color:var(--navy);font-size:inherit;padding:.35rem .7rem;border-radius:8px;opacity:.75;transition:opacity .2s}
.code-actions button:hover{opacity:1;background:rgba(49,46,129,.06)}
body.pg-tool input:invalid{border-color:var(--err);box-shadow:0 0 0 .2rem rgba(192,57,43,.15)}
body.pg-tool input:valid{border-color:var(--ok);box-shadow:0 0 0 .2rem rgba(26,127,55,.12)}
body.pg-tool input:placeholder-shown{border-color:var(--medium-gray-color);box-shadow:none}
body.pg-tool button:disabled{background:var(--muted);cursor:not-allowed;opacity:.7}

/* =========================================================
   Outil : licence Plus (license-activate.html)
   ========================================================= */
.license-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;margin:1rem 0}
.license-card dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0}
.license-card dt{font-weight:700;color:var(--navy)}
.license-card dd{margin:0;word-break:break-all}
.status-ok{color:var(--ok);font-weight:bold}
.status-exp{color:var(--err);font-weight:bold}
.status-none{color:var(--muted)}
body.pg-tool button.secondary{background:transparent;color:var(--navy);border:1px solid var(--line)}
body.pg-tool button.secondary:hover{background:rgba(49,46,129,.06)}

/* =========================================================
   Outil : coupon de test (coupon.php)
   ========================================================= */
body.pg-coupon h1{font-size:1.5rem}
body.pg-coupon .sub{color:var(--muted);font-size:.92rem;margin:0 0 1.5rem}
body.pg-coupon #code{text-transform:uppercase;letter-spacing:.05em}
body.pg-coupon button{width:100%;margin-top:1rem;font-weight:700}
body.pg-coupon .msg{padding:.7rem 1rem;border-radius:10px;margin-bottom:1rem;font-size:.9rem}
body.pg-coupon .msg.error{background:var(--err-bg);color:var(--err)}
body.pg-coupon .msg.ok{background:var(--ok-bg);color:var(--ok)}
body.pg-coupon .notice{display:none;background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn);padding:.8rem 1rem;border-radius:10px;font-size:.88rem;margin-bottom:1rem}
body.pg-coupon .footer{text-align:center;margin-top:1.5rem;font-size:.8rem;color:var(--muted)}
body.pg-thanks{text-align:center;padding:3rem}
body.pg-thanks h2{color:var(--ok)}

/* =========================================================
   Outil : répertoire persistant (transmit-rep.html)
   ========================================================= */
body.pg-rep .status{margin:20px 0;padding:15px;border-radius:10px;background:var(--bg);border-left:4px solid var(--accent)}
body.pg-rep .success{background:var(--ok-bg);border-left-color:var(--ok);color:var(--ok)}
body.pg-rep .error{background:var(--err-bg);border-left-color:var(--err-strong);color:var(--err-strong)}
body.pg-rep .warning{background:var(--warn-bg);border-left-color:var(--warn);color:var(--warn)}
body.pg-rep .info-panel{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:20px;margin:20px 0}
body.pg-rep .permission-indicator{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px}
body.pg-rep .permission-active{background:var(--ok)}
body.pg-rep .permission-inactive{background:var(--err-strong)}
body.pg-rep .test-section{background:var(--bg);padding:20px;border-radius:10px;margin:15px 0}
body.pg-rep .test-result{margin:10px 0;padding:10px;border-radius:6px;font-family:ui-monospace,Consolas,monospace}

/* =========================================================
   dev2.html (démo transfert + chat) — éléments scopés
   ========================================================= */
.lang-block{display:none}
:root[lang="en"] .lang-block[lang="en"],
:root[lang="fr"] .lang-block[lang="fr"],
:root[lang="ru"] .lang-block[lang="ru"],
:root[lang="vi"] .lang-block[lang="vi"],
:root[lang="es"] .lang-block[lang="es"],
:root[lang="it"] .lang-block[lang="it"],
:root[lang="de"] .lang-block[lang="de"]{display:block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
body.pg-dev2 h1,body.pg-dev2 h3,body.pg-dev2 h4{color:var(--navy)}
body.pg-dev2 h3{border:none;padding:0}
body.pg-dev2 button{font-size:1rem;padding:.75rem 1.25rem;margin:0;width:100%;background:var(--navy);border-radius:10px}
body.pg-dev2 button:not(:disabled):hover{background:var(--navy-deep);filter:none}
body.pg-dev2 button:not(:disabled):active{transform:scale(0.98)}
/* petits boutons d'action des tables : reprennent leurs couleurs propres
   (la règle large ci-dessus les écraserait sinon, spécificité 0,1,2 > 0,1,0) */
body.pg-dev2 .remove-btn{width:26px;height:26px;line-height:1;padding:0;background:var(--err);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1rem}
body.pg-dev2 .remove-btn:not(:disabled):hover{background:#a53125;transform:none}
body.pg-dev2 .cancel-btn{width:auto;background:transparent;border:1px solid var(--line);color:var(--muted);padding:.35rem .7rem;border-radius:8px}
body.pg-dev2 .cancel-btn:not(:disabled):hover{background:rgba(49,46,129,.06);color:var(--navy)}
body.pg-dev2 input[type="text"],body.pg-dev2 textarea{border-radius:10px}
body.pg-dev2 #installButton{width:auto}
/* actions sur le code : mêmes couleurs que le bouton principal (fond navy, icône blanche) */
body.pg-dev2 .code-actions button{width:auto;background:var(--navy);border:none;color:#fff;opacity:1;font-size:inherit;padding:.5rem .75rem;border-radius:10px}
body.pg-dev2 .code-actions button:hover{background:var(--navy-deep);opacity:1;filter:none}
#pairing-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem;display:grid;grid-template-columns:1fr;gap:1.5rem}
.pairing-column{display:flex;flex-direction:column;justify-content:center;position:relative;gap:.5rem}
#status-bar{grid-column:1/-1;text-align:center;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted)}
#status{font-weight:bold;color:var(--ink)}
#features-showcase{margin-top:2.5rem;margin-bottom:2.5rem;text-align:center;padding:0 1rem}
#features-showcase h2{font-size:1.6rem;color:var(--navy);margin-bottom:.5rem}
#features-showcase p{font-size:1.1rem;color:var(--muted);max-width:600px;margin:0 auto 2.5rem}
.features-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1000px;margin:0 auto}
.feature-item{display:flex;flex-direction:column;align-items:center;text-align:center}
.feature-item h4{font-size:1.1rem;margin:0 0 .5rem;color:var(--ink)}
.feature-item span{font-size:.95rem;color:var(--muted);line-height:1.5}
.how-it-works{margin-top:4rem;border-top:1px solid var(--line);padding-top:2.5rem}
.how-it-works h3{margin-bottom:2.5rem;font-size:1.4rem}
/* bandeau CTA iCanSend Plus (fin de chaque bloc langue)
   sélecteurs préfixés par #features-showcase : sans eux, les règles
   "#features-showcase p" et "body.pg-dev2 h3" gagnent la cascade */
.plus-promo{margin-top:3rem;padding:2.2rem 1.8rem;background:var(--navy);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow)}
#features-showcase .plus-promo h3{color:#fff;font-size:1.35rem;margin:0 0 .6rem}
#features-showcase .plus-promo p{color:#dfe2fc;font-size:1rem;line-height:1.6;max-width:56ch;margin:0 auto 1.4rem}
#features-showcase .plus-promo .btn{background:#fff;color:var(--navy);border-color:#fff}
#features-showcase .plus-promo .btn:hover{background:var(--bg)}
.steps-list{list-style:none;padding:0;max-width:700px;margin:0 auto;display:grid;gap:2rem}
.step-item{display:flex;align-items:flex-start;gap:1.5rem;text-align:left}
.step-number{flex-shrink:0;width:40px;height:40px;background:var(--bg);border:1px solid var(--line);color:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:bold;font-family:'Courier New',Courier,monospace}
.step-content h4{margin:0 0 .25rem;text-align:left;font-size:1.1rem;color:var(--navy)}
.step-content p{margin:0;text-align:left;font-size:.95rem;color:var(--muted)}
#chat-section{border:1px solid var(--line);border-radius:var(--radius);margin-top:2rem;overflow:hidden;background:var(--surface)}
.chat-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg);cursor:pointer;font-weight:600;color:var(--navy)}
.chat-toggle-icon{transition:transform .3s ease}
#chat-section.is-expanded .chat-toggle-icon{transform:rotate(180deg)}
.chat-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out;padding:0 1rem}
#chat-section.is-expanded .chat-content{max-height:500px;padding:1rem}
textarea#messageInput{height:50px;resize:vertical;flex-grow:1}
#mainContent{border:3px dashed transparent;border-radius:var(--radius);transition:border-color .2s,background-color .2s;padding:1rem}
#mainContent.dragover{border-color:var(--accent);background:rgba(79,70,229,.05)}
body.pg-dev2 tbody:empty{border:2px dashed var(--medium-gray-color);border-radius:var(--radius)}
body.pg-dev2 tbody:empty::after{content:attr(data-placeholder);display:block;padding:4rem 2rem;text-align:center;color:var(--muted);font-size:1.2rem}
#generatedCodeContainer{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}
#controlButton{margin-top:1.5rem}
#generatedCodeText{font-size:2.5rem;font-weight:bold;color:var(--navy);letter-spacing:.1em;padding:1rem;background:var(--bg);border:1px dashed var(--medium-gray-color);border-radius:var(--radius);text-align:center;width:100%;font-family:'Courier New',Courier,monospace}
#receivedFilesSection{display:flex;flex-direction:column;align-items:center;width:100%}
#receivedFileTable{max-width:100%;width:auto;margin:0}
/* scoped dev2 : ne doit pas fuiter sur le #previewDialog de plus.html */
body.pg-dev2 dialog{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;background:var(--surface);color:var(--ink);max-width:500px;width:calc(100% - 2rem);margin:auto}
body.pg-dev2 dialog::backdrop{background:rgba(28,28,46,.5);backdrop-filter:blur(2px)}
body.pg-dev2 dialog p{margin:0 0 1.5rem;font-size:1.1rem;line-height:1.5;text-align:center}
body.pg-dev2 dialog form{display:flex;flex-direction:column;align-items:center}

/* =========================================================
   Responsive consolidé (extensions) — un seul bloc par condition
   ========================================================= */
@media (min-width:768px){
	.app-container{margin:2rem auto;padding:2.5rem 3rem}
	.main-header{flex-direction:row;justify-content:space-between;align-items:center}
	body.pg-dev2 button{width:auto}
	#pairing-card{grid-template-columns:1fr 1fr;gap:4rem}
	#enter-column{position:relative}
	#enter-column::before{content:"/";position:absolute;left:-2rem;top:50%;transform:translate(-50%,-50%);background:var(--surface);color:var(--muted);padding:0 .5rem;font-weight:bold;z-index:1}
	#enter-column::after{content:"";position:absolute;left:-2rem;top:0;bottom:0;transform:translateX(-50%);width:1px;background:var(--line)}
	#enter-column.separator-hidden::before,#enter-column.separator-hidden::after{display:none}
	#generate-column>button{height:100%}
	.features-grid{grid-template-columns:repeat(3,1fr);gap:2.5rem}
	.feature-item{align-items:flex-start;text-align:left}
}
@media (max-width:768px){
	.compare-page .info-grid{grid-template-columns:1fr;gap:1.5rem}
}

/* =========================================================
   no-proxy.html / privaterelay.html
   ========================================================= */
body>div[lang]{display:none}
body>div[lang].visible{display:block}
h2.page-subtitle{font-size:1.2rem;color:var(--muted);font-weight:400;max-width:60ch;margin:0}
h2.section-title{font-size:1.8rem;margin-bottom:.5rem}
h3.section-subtitle{font-size:1.1rem;color:var(--muted);font-weight:400;max-width:70ch;margin:0 auto 2.5rem}
.solution-box{margin-top:2.5rem;padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:center;box-shadow:var(--shadow)}
.solution-box p{color:var(--muted);margin-bottom:1.5rem}
a.reload-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;background:var(--navy);color:#fff;font-weight:600;border-radius:10px;box-shadow:var(--shadow);transition:all .15s ease}
a.reload-button:hover{background:var(--navy-deep);text-decoration:none;opacity:1;transform:translateY(-1px);box-shadow:0 8px 20px rgba(49,46,129,.25)}

/* ===== iCanSend Plus : guide (doc-plus.html) — scopé ===== */
body.pg-doc{ --bg: #f0f2f5; --surface: #ffffff; --surface-2: #f8fafc; --surface-3: #f1f5f9; --text: #1e293b; --text-muted: #64748b; --text-light: #94a3b8; --primary: #4f46e5; --primary-light: #6366f1; --primary-dark: #4338ca; --primary-surface: #eef2ff; --accent: #8b5cf6; --success: #10b981; --success-surface: #ecfdf5; --danger: #ef4444; --warn: #f59e0b; --warn-surface: #fffbeb; --border: #e2e8f0; --border-strong: #cbd5e1; --radius: 12px; --radius-sm: 8px; --radius-lg: 16px; --shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -2px rgba(0,0,0,0.05); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -4px rgba(0,0,0,0.05); --transition: 0.2s cubic-bezier(0.4,0,0.2,1); }body.pg-doc *,body.pg-doc *::before,body.pg-doc *::after{ box-sizing: border-box; margin: 0; padding: 0; }body.pg-doc{ font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }body.pg-doc{ font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: var(--bg); color: var(--text); line-height: 1.7; -webkit-font-smoothing: antialiased; }body.pg-doc a,body.pg-doc a:visited{ color: var(--primary-light); text-decoration: none; }body.pg-doc a:hover{ text-decoration: underline; }body.pg-doc h1,body.pg-doc h2,body.pg-doc h3,body.pg-doc h4{ color: var(--text); letter-spacing: -0.02em; line-height: 1.3; }body.pg-doc h1{ font-size: 2rem; font-weight: 800; }body.pg-doc h2{ font-size: 1.5rem; font-weight: 700; margin-top: 2.5rem; margin-bottom: 0.75rem; }body.pg-doc h3{ font-size: 1.15rem; font-weight: 600; margin-top: 1.5rem; margin-bottom: 0.5rem; }body.pg-doc p{ margin-bottom: 0.75rem; }body.pg-doc ul,body.pg-doc ol{ margin-bottom: 0.75rem; padding-left: 1.5rem; }body.pg-doc li{ margin-bottom: 0.3rem; }body.pg-doc code{ font-family: 'SF Mono', 'Fira Code', monospace; background: var(--surface-3); padding: 0.1rem 0.4rem; border-radius: 4px; font-size: 0.85em; }body.pg-doc .hint{ color: var(--text-muted); font-size: 0.78em; font-weight: 500; }body.pg-doc strong{ font-weight: 600; }body.pg-doc .container{ max-width: 900px; margin: 0 auto; padding: 1rem; }body.pg-doc 
.doc-header{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 2px solid var(--border); }body.pg-doc .doc-header h1{ font-size: 1.5rem; }body.pg-doc .lang-switch{ display: flex; gap: 0.25rem; }body.pg-doc .lang-switch button{ padding: 0.35rem 0.8rem; font-size: 0.8rem; font-weight: 600; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); color: var(--text-muted); cursor: pointer; transition: all var(--transition); }body.pg-doc .lang-switch button.active{ background: var(--primary); color: #fff; border-color: var(--primary); }body.pg-doc .lang-switch button:not(.active):hover{ border-color: var(--primary-light); color: var(--primary); }body.pg-doc 
.doc-nav{ position: sticky; top: 0; z-index: 50; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 0.5rem; margin-bottom: 1.5rem; box-shadow: var(--shadow); overflow-x: auto; scrollbar-width: none; display: flex; gap: 0.25rem; flex-wrap: wrap; }body.pg-doc .doc-nav::-webkit-scrollbar{ display: none; }body.pg-doc .doc-nav a{ padding: 0.35rem 0.7rem; font-size: 0.8rem; font-weight: 600; color: var(--text-muted); white-space: nowrap; border-radius: var(--radius-sm); transition: all var(--transition); }body.pg-doc .doc-nav a:hover{ background: var(--primary-surface); color: var(--primary); text-decoration: none; }body.pg-doc 
section{ margin-bottom: 2rem; scroll-margin-top: 70px; }body.pg-doc .hero{ background: var(--navy); color: #fff; border-radius: var(--radius-lg); padding: 2rem; margin-bottom: 2rem; box-shadow: var(--shadow-lg); }body.pg-doc .hero h1{ color: #fff; margin-bottom: 0.5rem; }body.pg-doc .hero p{ font-size: 1.1rem; opacity: 0.95; margin-bottom: 0; }body.pg-doc .hero .badges{ display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }body.pg-doc .hero .badge{ background: rgba(255,255,255,0.2); padding: 0.3rem 0.7rem; border-radius: 1rem; font-size: 0.8rem; font-weight: 600; }body.pg-doc .callout{ background: var(--primary-surface); border-left: 4px solid var(--primary); border-radius: var(--radius-sm); padding: 1rem 1.25rem; margin: 1rem 0; }body.pg-doc .callout.warn{ background: var(--warn-surface); border-left-color: var(--warn); }body.pg-doc .callout.success{ background: var(--success-surface); border-left-color: var(--success); }body.pg-doc .callout p:last-child{ margin-bottom: 0; }body.pg-doc .feature-grid{ display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1.5rem 0; }body.pg-doc .feature-card{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.25rem; box-shadow: var(--shadow); }body.pg-doc .feature-card .icon{ font-size: 1.8rem; margin-bottom: 0.5rem; display: block; }body.pg-doc .feature-card h3{ margin-top: 0; }body.pg-doc .feature-card p{ font-size: 0.9rem; color: var(--text-muted); margin-bottom: 0; }body.pg-doc .steps{ counter-reset: step; list-style: none; padding-left: 0; margin: 1.5rem 0; }body.pg-doc .steps li{ counter-increment: step; position: relative; padding-left: 2.5rem; margin-bottom: 1rem; }body.pg-doc .steps li::before{ content: counter(step); position: absolute; left: 0; top: 0; width: 1.8rem; height: 1.8rem; background: var(--primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; }body.pg-doc table{ width: 100%; border-collapse: collapse; margin: 1rem 0; }body.pg-doc th,body.pg-doc td{ border: 1px solid var(--border); padding: 0.6rem 0.8rem; text-align: left; font-size: 0.9rem; }body.pg-doc th{ background: var(--surface-3); font-weight: 600; }body.pg-doc 
.lang-fr{ display: none; }html[lang="fr"] body.pg-doc .lang-fr{ display: block; }html[lang="fr"] body.pg-doc .lang-en{ display: none; }body.pg-doc .lang-en{ display: block; }@media (prefers-color-scheme: dark){body.pg-doc{ --bg: #0f172a; --surface: #1e293b; --surface-2: #243449; --surface-3: #334155; --text: #e2e8f0; --text-muted: #94a3b8; --text-light: #64748b; --primary-surface: #312e81; --border: #334155; --border-strong: #475569; --shadow: 0 1px 3px rgba(0,0,0,0.3); --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.4); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.5); --success-surface: #064e3b; --warn-surface: #78350f; }}@media (min-width: 768px){body.pg-doc .container{ padding: 2rem; }body.pg-doc .doc-header h1{ font-size: 2rem; }}@media (min-width: 640px){body.pg-doc .feature-grid{ grid-template-columns: 1fr 1fr; }}
/* ===== iCanSend Plus : tarifs (pricing-plus.html) — scopé ===== */
body.pg-pricing{ --bg: #f0f2f5; --surface: #ffffff; --surface-2: #f8fafc; --surface-3: #f1f5f9; --text: #1e293b; --text-muted: #64748b; --text-light: #94a3b8; --primary: #4f46e5; --primary-light: #6366f1; --primary-dark: #4338ca; --primary-surface: #eef2ff; --accent: #8b5cf6; --success: #10b981; --success-surface: #ecfdf5; --danger: #ef4444; --warn: #f59e0b; --warn-surface: #fffbeb; --border: #e2e8f0; --border-strong: #cbd5e1; --radius: 12px; --radius-sm: 8px; --radius-lg: 16px; --radius-xl: 24px; --shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -2px rgba(0,0,0,0.05); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -4px rgba(0,0,0,0.05); --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.05); --transition: 0.2s cubic-bezier(0.4,0,0.2,1); }body.pg-pricing *,body.pg-pricing *::before,body.pg-pricing *::after{ box-sizing: border-box; margin: 0; padding: 0; }body.pg-pricing{ font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }body.pg-pricing{ font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: var(--bg); color: var(--text); line-height: 1.7; -webkit-font-smoothing: antialiased; }body.pg-pricing a,body.pg-pricing a:visited{ color: var(--primary-light); text-decoration: none; }body.pg-pricing a:hover{ text-decoration: underline; }body.pg-pricing h1,body.pg-pricing h2,body.pg-pricing h3,body.pg-pricing h4{ color: var(--text); letter-spacing: -0.02em; line-height: 1.3; }body.pg-pricing h1{ font-size: 2.5rem; font-weight: 800; }body.pg-pricing h2{ font-size: 1.75rem; font-weight: 700; margin-top: 2.5rem; margin-bottom: 1rem; }body.pg-pricing h3{ font-size: 1.2rem; font-weight: 600; margin-bottom: 0.5rem; }body.pg-pricing p{ margin-bottom: 0.75rem; }body.pg-pricing strong{ font-weight: 600; }body.pg-pricing .container{ max-width: 1000px; margin: 0 auto; padding: 1rem; }body.pg-pricing .header{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }body.pg-pricing .header h1{ font-size: 1.3rem; }body.pg-pricing .lang-switch{ display: flex; gap: 0.25rem; }body.pg-pricing .lang-switch button{ padding: 0.35rem 0.8rem; font-size: 0.8rem; font-weight: 600; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); color: var(--text-muted); cursor: pointer; transition: all var(--transition); }body.pg-pricing .lang-switch button.active{ background: var(--primary); color: #fff; border-color: var(--primary); }body.pg-pricing .hero{ text-align: center; padding: 3rem 1.5rem; background: var(--navy); color: #fff; border-radius: var(--radius-xl); margin-bottom: 2rem; box-shadow: var(--shadow-xl); }body.pg-pricing .hero h1{ color: #fff; font-size: 2.2rem; margin-bottom: 0.5rem; }body.pg-pricing .hero .sub{ font-size: 1.15rem; opacity: 0.95; max-width: 600px; margin: 0 auto 1.5rem; }body.pg-pricing .hero .per-day{ background: rgba(255,255,255,0.2); display: inline-block; padding: 0.4rem 1rem; border-radius: 1rem; font-weight: 700; font-size: 1rem; }body.pg-pricing .pricing-grid{ display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin: 2rem 0; }body.pg-pricing .plan{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow-md); position: relative; transition: all var(--transition); }body.pg-pricing .plan:hover{ transform: translateY(-4px); box-shadow: var(--shadow-lg); }body.pg-pricing .plan.featured{ border: 2px solid var(--primary); }body.pg-pricing .plan .badge{ position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--success); color: #fff; padding: 0.25rem 1rem; border-radius: 1rem; font-size: 0.75rem; font-weight: 700; white-space: nowrap; }body.pg-pricing .plan .price{ font-size: 3rem; font-weight: 800; color: var(--primary); margin: 0.5rem 0; line-height: 1.1; }body.pg-pricing .plan .price .currency{ font-size: 1.2rem; vertical-align: top; }body.pg-pricing .plan .price-old{ font-size: 1.5rem; color: var(--text-light); font-weight: 700; text-decoration: line-through; text-decoration-thickness: 2px; vertical-align: middle; margin-left: 0.5rem; }body.pg-pricing .plan .period{ color: var(--text-muted); font-size: 0.9rem; }body.pg-pricing .plan .save{ color: var(--success); font-weight: 600; font-size: 0.85rem; margin-bottom: 1rem; }body.pg-pricing .plan .badge{ font-size: 0.85rem; padding: 0.3rem 1.1rem; box-shadow: 0 4px 10px rgba(16,185,129,0.35); }body.pg-pricing .plan.featured{ border-color: var(--success); }body.pg-pricing .plan.featured .badge{ background: var(--success); }body.pg-pricing .plan.featured::before{ content: '\1F381'; position: absolute; top: -14px; right: 1.2rem; font-size: 1.5rem; filter: drop-shadow(0 2px 3px rgba(0,0,0,0.15)); }body.pg-pricing .trial-banner{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; background: var(--success-surface); border: 1px solid var(--success); border-left: 4px solid var(--success); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; margin: 1.5rem 0; }body.pg-pricing .trial-banner .trial-text strong{ display: block; font-size: 1.05rem; color: var(--text); }body.pg-pricing .trial-banner .trial-text span{ font-size: 0.88rem; color: var(--text-muted); }body.pg-pricing .trial-banner .cta{ width: auto; margin: 0; padding: 0.7rem 1.4rem; font-size: 0.95rem; white-space: nowrap; }body.pg-pricing .trial-banner .cta:not(.secondary):hover{ background: var(--success); color: #fff; border-color: var(--success); }body.pg-pricing .trial-banner .cta.secondary:hover{ background: var(--border); color: var(--text); border-color: var(--border-strong); }body.pg-pricing .plan ul{ list-style: none; padding: 0; margin: 1rem 0; }body.pg-pricing .plan li{ padding: 0.4rem 0; display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.9rem; }body.pg-pricing .plan li::before{ content: ''; width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; background: var(--success); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/contain no-repeat; }body.pg-pricing .cta{ display: block; width: 100%; padding: 1rem; font-size: 1.1rem; font-weight: 700; text-align: center; border: none; border-radius: var(--radius); background: var(--primary); color: #fff; cursor: pointer; transition: all var(--transition); text-decoration: none; }body.pg-pricing .cta:hover{ background: var(--primary-light); transform: translateY(-2px); box-shadow: var(--shadow-md); text-decoration: none; }body.pg-pricing .cta.secondary{ background: var(--surface-3); color: var(--text); border: 1px solid var(--border-strong); }body.pg-pricing .cta.secondary:hover{ background: var(--border); }body.pg-pricing .compare{ margin: 3rem 0; }body.pg-pricing .compare table{ width: 100%; border-collapse: collapse; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }body.pg-pricing .compare th,body.pg-pricing .compare td{ padding: 0.75rem 1rem; text-align: left; font-size: 0.9rem; border-bottom: 1px solid var(--border); }body.pg-pricing .compare th{ background: var(--surface-3); font-weight: 700; }body.pg-pricing .compare tr:last-child td{ border-bottom: none; }body.pg-pricing .compare .yes{ color: var(--success); font-weight: 700; }body.pg-pricing .compare .no{ color: var(--text-light); }body.pg-pricing .compare .icon-yes,body.pg-pricing .compare .icon-no{ display: inline-block; width: 18px; height: 18px; vertical-align: middle; margin-right: 0.3rem; }body.pg-pricing .compare .icon-yes{ background: var(--success); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/contain no-repeat; }body.pg-pricing .compare .icon-no{ background: var(--text-light); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 13H5v-2h14v2z'/></svg>") center/contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 13H5v-2h14v2z'/></svg>") center/contain no-repeat; }body.pg-pricing .value-grid{ display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 2rem 0; }body.pg-pricing .value-card{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow); }body.pg-pricing .value-card .v-icon{ width: 32px; height: 32px; margin-bottom: 0.75rem; }body.pg-pricing .value-card .v-icon svg{ width: 100%; height: 100%; }body.pg-pricing .value-card h3{ margin-bottom: 0.25rem; }body.pg-pricing .value-card p{ font-size: 0.85rem; color: var(--text-muted); margin-bottom: 0; }body.pg-pricing .lang-fr{ display: none; }html[lang="fr"] body.pg-pricing .lang-fr{ display: block; }html[lang="fr"] body.pg-pricing .lang-en{ display: none; }body.pg-pricing .lang-en{ display: block; }body.pg-pricing .subscribe-btn.incompatible{ opacity: 0.45; cursor: not-allowed; }body.pg-pricing .qty-row{ display:flex; align-items:center; justify-content:center; gap:0.6rem; margin:1rem 0 0.4rem; }body.pg-pricing .qty-label{ font-size:0.82rem; color:var(--text-muted); font-weight:600; }body.pg-pricing .qty-btn{ width:34px; height:34px; flex-shrink:0; border-radius:50%; border:1px solid var(--border-strong); background:var(--surface); color:var(--text); font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--transition); user-select:none; }body.pg-pricing .qty-btn:hover:not([disabled]){ background:var(--primary-surface); border-color:var(--primary); color:var(--primary); }body.pg-pricing .qty-btn[disabled]{ opacity:0.35; cursor:not-allowed; }body.pg-pricing .qty-input{ width:46px; text-align:center; font-size:1.05rem; font-weight:700; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); padding:0.3rem 0; -moz-appearance:textfield; }body.pg-pricing .qty-input::-webkit-outer-spin-button,body.pg-pricing .qty-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }body.pg-pricing .qty-total{ text-align:center; font-size:0.88rem; color:var(--text-muted); margin-bottom:0.8rem; min-height:1.2em; }body.pg-pricing .qty-total .qt-price{ font-weight:700; color:var(--primary); }body.pg-pricing .ics-toast{ position: fixed; left: 50%; bottom: 1.5rem; transform: translate(-50%, 1.5rem); max-width: 92vw; width: 540px; background: #1e293b; color: #fff; padding: 0.95rem 1.2rem; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.35); opacity: 0; transition: opacity .25s ease, transform .25s ease; z-index: 9999; font-size: 0.9rem; line-height: 1.45; }body.pg-pricing .ics-toast.show{ opacity: 1; transform: translate(-50%, 0); }body.pg-pricing .ics-toast strong{ color: #fcd34d; }body.pg-pricing .tax-note{ text-align:center; font-size:0.82rem; color:var(--text-muted); margin:-0.5rem 0 0.5rem; }body.pg-pricing .tax-note strong{ color:var(--text); font-weight:600; }@media (prefers-color-scheme: dark){body.pg-pricing{ --bg: #0f172a; --surface: #1e293b; --surface-2: #243449; --surface-3: #334155; --text: #e2e8f0; --text-muted: #94a3b8; --text-light: #64748b; --primary-surface: #312e81; --border: #334155; --border-strong: #475569; --shadow: 0 1px 3px rgba(0,0,0,0.3); --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.4); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.5); --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.6); --success-surface: #064e3b; --warn-surface: #78350f; }}@media (min-width: 768px){body.pg-pricing .container{ padding: 2rem; }body.pg-pricing .hero{ padding: 4rem 2rem; }body.pg-pricing .hero h1{ font-size: 3rem; }body.pg-pricing .pricing-grid{ grid-template-columns: 1fr 1fr; }}@media (min-width: 640px){body.pg-pricing .value-grid{ grid-template-columns: 1fr 1fr; }}@media (min-width: 900px){body.pg-pricing .value-grid{ grid-template-columns: 1fr 1fr 1fr; }}
/* ===== Alignement boutons/liens sur le navy de la charte (doc & pricing) ===== */
body.pg-doc,body.pg-pricing{--primary:var(--navy);--primary-light:#4338ca;--accent:#4f46e5}
