diff --git a/css/style.css b/css/style.css
index ea7920c..168ee02 100644
--- a/css/style.css
+++ b/css/style.css
@@ -293,6 +293,11 @@ input[type="range"]::-webkit-slider-thumb {
color: var(--text);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
+/* Invisibles MAIS presents tant que la 2e couche de licence n'a pas repondu
+ (applyRegisterVisibility) : visibles par defaut, ils laissaient voir Register
+ quelques millisecondes avant d'etre masques. visibility et non display : la
+ place reste reservee, donc rien ne saute quand ils apparaissent. */
+.auth-tabs.is-pending { visibility: hidden; }
.auth-form { display: flex; flex-direction: column; }
.auth-form .btn-block { margin-top: 8px; }
diff --git a/index.html b/index.html
index b14b078..92659e8 100644
--- a/index.html
+++ b/index.html
@@ -121,7 +121,7 @@
Your passwords, encrypted locally.
-
+
diff --git a/js/app.js b/js/app.js
index 9f2d89c..91e7715 100644
--- a/js/app.js
+++ b/js/app.js
@@ -7037,14 +7037,20 @@ async function ensureLicence() {
// Pas d'await chez l'appelant : l'ecran d'authentification ne doit pas
// attendre ce test pour s'afficher.
async function applyRegisterVisibility() {
- if (!Bridge.active) return;
let refused = false;
- try { await api('/ping'); }
- // Le 404 JSON exact de la 2e couche, pas n'importe quel 404 : le verrou du
- // jeton repond aussi 404, mais sans corps JSON.
- catch (e) { refused = (e.status === 404 && e.body && e.body.error === 'Not found'); }
+ if (Bridge.active) {
+ try { await api('/ping'); }
+ // Le 404 JSON exact de la 2e couche, pas n'importe quel 404 : le verrou
+ // du jeton repond aussi 404, mais sans corps JSON.
+ catch (e) { refused = (e.status === 404 && e.body && e.body.error === 'Not found'); }
+ }
const tabs = document.querySelector('.auth-tabs');
- if (tabs) tabs.classList.toggle('is-hidden', refused);
+ // Les onglets naissent invisibles (is-pending) : on ne les revele qu'une
+ // fois la reponse connue, sinon Register clignote avant d'etre masque.
+ if (tabs) {
+ tabs.classList.toggle('is-hidden', refused);
+ tabs.classList.remove('is-pending');
+ }
if (refused) {
$$('.auth-tab').forEach(x => x.classList.toggle('is-active', x.dataset.tab === 'login'));
$('#loginForm').classList.remove('is-hidden');