/* WLDesigner — feuille commune. Esthetique "blueprint" : le produit est un
   outil de dessin de schemas reseau, l'interface en reprend la matiere
   (fond ardoise, grille de plan discrete, identifiants en monospace). */
:root{
  --bg:#0f1620; --panel:#161f2b; --panel2:#1b2634; --line:#26374a;
  --text:#d7e0ea; --muted:#7d8fa3; --accent:#558ed5; --accent-soft:#2e4f7d;  /* bleu ONAIR.VISION #558ed5 */
  --ok:#4fc27a; --warn:#e0a84a; --err:#e06060;
  --mono:ui-monospace,'SF Mono','Cascadia Code',Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{
  background:var(--bg);
  color:var(--text);
  font:15px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
code,.mono{font-family:var(--mono);font-size:.92em}
h1{font-size:20px;font-weight:600;letter-spacing:.03em;margin:0}
h2{font-size:15px;font-weight:600;color:var(--muted);
   text-transform:uppercase;letter-spacing:.12em;margin:0 0 14px}

/* barre superieure */
.topbar{display:flex;align-items:center;gap:16px;padding:14px 24px;
  background:var(--panel);border-bottom:1px solid var(--line)}
.topbar .brand{font-weight:700;letter-spacing:.06em;
  display:inline-flex;flex-direction:column;line-height:1.1}
.topbar .brand b{color:var(--accent)}
.pwwrap{position:relative;display:block}
.pwwrap input{padding-right:38px}
.pweye{position:absolute;right:3px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;color:var(--muted);cursor:pointer;
  font-size:15px;padding:3px 7px;line-height:1;border-radius:5px}
.pweye:hover{background:transparent;color:var(--text)}
.pweye.on{color:var(--accent)}
.topbar .brand .brandline{white-space:nowrap}
.topbar .brand .ver{font:400 9px var(--mono);color:var(--muted);
  letter-spacing:.4px;margin-top:1px}
.topbar .spacer{flex:1}
.topbar .who{color:var(--muted);font-family:var(--mono);font-size:13px}
/* liens de navigation du bandeau : rendus en BOUTONS — plus lisibles que
   du texte nu ; la page courante (aria-current) est soulignee a l'accent */
.topbar>a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;
  border:1px solid #558ed5;border-radius:8px;background:var(--panel2);
  color:#fff;text-decoration:none;font-size:13px;font-weight:600;
  line-height:1;white-space:nowrap;
  transition:border-color .15s,color .15s,background .15s}
.topbar>a:hover{border-color:var(--accent);color:var(--accent)}
/* bouton d'ouverture (espaces, taches) : VERT, franchement visible */
a.btn-open{display:inline-block;padding:6px 14px;border-radius:8px;
  background:#1f883d;border:1px solid #558ed5;color:#fff !important;
  font-weight:600;font-size:12.5px;text-decoration:none;white-space:nowrap;
  transition:background .15s}
a.btn-open:hover{background:#2ea043}
/* Boutons de module : meme aspect que la barre d'outils des
   schemas (.tool). Declare ici plutot que recopie dans la page,
   pour que les deux restent accordes.
   Le vert plein de .btn-open reste a l'action principale : une
   rangee ou tout crie de la meme facon ne dit plus ce qui compte. */
a.modbtn{display:inline-block;background:transparent;color:#fff;
  border:1px solid #558ed5;border-radius:6px;padding:6px 12px;
  font-size:13px;font-weight:400;text-decoration:none;
  white-space:nowrap;cursor:pointer;transition:background .15s}
a.modbtn:hover{background:rgba(85,142,213,.14)}
/* Sans cette regle, le texte blanc disparaitrait sur les themes
   Clair, Sepia et Contraste eleve. */
html[data-tone="light"] a.modbtn{color:#111}
html[data-mobile="1"] a.modbtn{min-height:44px;padding:11px 16px;
  font-size:14px;display:block;text-align:center}
/* panneaux estampilles ONAIR.VISION : cadre au bleu du logo */
.panel.panel-onair{border:1px solid #558ed5}
.topbar>a[aria-current="page"]{border-color:var(--accent);
  color:var(--accent);background:rgba(85,142,213,.12)}
/* logo d'entete : transparent, pose directement sur le bandeau sombre
   (le logo est en couleurs moyennes, lisible sans fond) */
.topbar .toplogo{height:26px;background:transparent;padding:0}
/* icone d'entete : marque carree posee AVANT le nom du produit.
   Hauteur calee SOUS le bloc texte du bandeau (15px x 1.1 pour le
   nom, plus la ligne de version en 9px, soit ~27px) : l'image ne
   doit jamais piloter la hauteur de la barre. Aucun border-radius,
   la source porte deja ses coins arrondis en transparence — les
   cumuler rognerait les angles.
   Contrairement a l'ancien logotype large, elle reste affichee sur
   telephone : 22 px carres tiennent dans le bandeau. */
.topbar .topicon{height:24px;width:24px;background:transparent;
  padding:0;flex:0 0 auto;display:block;align-self:center}
html[data-mobile="1"] .topbar .topicon{height:22px;width:22px}
.wslogo{height:22px;max-width:120px;object-fit:contain;vertical-align:middle;
  margin-left:8px;border-radius:4px}

.wrap{max-width:1040px;margin:28px auto;padding:0 20px}
.panel{background:var(--panel);border:1px solid var(--line);
  border-radius:8px;padding:20px 22px;margin-bottom:24px}

/* tableaux */
table{width:100%;border-collapse:collapse;font-size:14px}
th{color:var(--muted);text-align:left;font-weight:500;font-size:12px;
  text-transform:uppercase;letter-spacing:.08em;
  padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td .mono{color:var(--text)}
.badge{display:inline-block;padding:2px 9px;border-radius:20px;
  font-size:12px;font-family:var(--mono)}
.badge.admin{background:#3b2f4d;color:#c9a8ff}
.badge.user{background:var(--accent-soft);color:#9fe3ee}
.badge.readonly{background:#33404f;color:#a9bccf}
.badge.off{background:#4d2f2f;color:#f0a8a8}

/* formulaires */
label{display:block;font-size:12px;color:var(--muted);margin:0 0 4px;
  text-transform:uppercase;letter-spacing:.07em}
input,select,textarea{
  width:100%;background:var(--bg);border:1px solid var(--line);
  color:var(--text);border-radius:6px;padding:8px 10px;font:inherit}
input:focus,select:focus,textarea:focus{
  outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}
/* ===== fenetres modales (mutualise : admin, tickets, todo...) ===== */
.wld-veil{position:fixed;inset:0;background:rgba(8,12,18,.66);z-index:300;
  display:flex;align-items:flex-start;justify-content:center;
  overflow:auto;padding:38px 14px}
.wld-veil[hidden]{display:none !important}
.wld-veil .card{background:var(--panel);border:1px solid var(--accent);
  border-radius:12px;padding:18px 22px;width:min(680px,96vw)}
.wld-veil .card h2{margin:0 0 12px}
.wld-veil label{display:block;font-size:11.5px;color:var(--muted);
  margin-bottom:3px}
html[data-mobile="1"] .wld-veil{padding:8px}
html[data-mobile="1"] .wld-veil .card{width:100%;max-height:92vh;overflow:auto}

.row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}

/* ======================= AFFICHAGE TELEPHONE =======================
   Actif seulement sous <html data-mobile="1"> (voir wld-common.js) :
   les tablettes et ordinateurs ne voient RIEN de ce bloc.
   Principe : une colonne, cibles tactiles >= 44 px, tableaux convertis
   en cartes empilees (l'intitule de colonne passe en etiquette). */
html[data-mobile="1"]{-webkit-text-size-adjust:100%}
html[data-mobile="1"] body{font-size:15px}
/* --- bandeau --- */
html[data-mobile="1"] .topbar{flex-wrap:wrap;gap:6px;padding:8px 12px;
  position:sticky;top:0;z-index:40}
html[data-mobile="1"] .topbar .brand{font-size:15px}
html[data-mobile="1"] .toplogo,
html[data-mobile="1"] #wldClocks,       /* horloges LOC / UTC */
html[data-mobile="1"] #adminLink,       /* Administration : grand ecran */
html[data-mobile="1"] #secLink,         /* Sécurité : grand ecran */
html[data-mobile="1"] #totpPanel,       /* double authentification */
html[data-mobile="1"] .topbar .who{display:none}
html[data-mobile="1"] .topbar>a,
html[data-mobile="1"] .topbar button{padding:9px 12px;font-size:13px;
  min-height:40px}
/* --- contenu --- */
html[data-mobile="1"] .wrap{margin:12px 0;padding:0 10px}
html[data-mobile="1"] .panel{padding:12px}
html[data-mobile="1"] h2{font-size:15px}
html[data-mobile="1"] .field,
html[data-mobile="1"] .row{display:block}
html[data-mobile="1"] .row>div{width:auto}
html[data-mobile="1"] input,
html[data-mobile="1"] select,
html[data-mobile="1"] textarea{font-size:16px;padding:11px 12px}
  /* 16 px : empeche le zoom automatique d'iOS a la saisie */
html[data-mobile="1"] button,
html[data-mobile="1"] .btn-open{min-height:44px;padding:11px 16px;
  font-size:14px}
html[data-mobile="1"] .veil{padding:8px}
html[data-mobile="1"] .card{width:100%;padding:14px;
  max-height:92vh;overflow:auto}
/* --- tableaux en CARTES --- */
html[data-mobile="1"] table thead{display:none}
html[data-mobile="1"] table,
html[data-mobile="1"] table tbody,
html[data-mobile="1"] table tr,
html[data-mobile="1"] table td{display:block;width:auto}
html[data-mobile="1"] table tr{border:1px solid var(--line);
  border-radius:10px;background:var(--panel2);margin:0 0 10px;padding:8px 10px}
html[data-mobile="1"] table td{border:0;padding:3px 0;max-width:none}
html[data-mobile="1"] table td:empty{display:none}
html[data-mobile="1"] table td[data-lbl]::before{content:attr(data-lbl) " ";
  color:var(--muted);font-size:11px;text-transform:uppercase;
  letter-spacing:.4px}
/* la cellule tronquee de l'accueil se deplie sur telephone (3 lignes) */
html[data-mobile="1"] td.trunc{white-space:normal;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
/* le bouton d'ouverture prend toute la largeur en bas de carte */
html[data-mobile="1"] table td .btn-open{display:block;text-align:center;
  margin-top:6px}
/* --- barres d'outils des modules : enroulement et defilement --- */
html[data-mobile="1"] .todobar,
html[data-mobile="1"] .tkbar,
html[data-mobile="1"] .mntbar{flex-wrap:wrap;gap:8px;padding:8px 10px}
html[data-mobile="1"] .todobar .spacer,
html[data-mobile="1"] .tkbar .spacer,
html[data-mobile="1"] .mntbar .spacer{display:none}
html[data-mobile="1"] .todobar select,
html[data-mobile="1"] .tkbar select,
html[data-mobile="1"] .mntbar select,
html[data-mobile="1"] .tkbar input{flex:1 1 46%;min-width:0}
html[data-mobile="1"] .seg{display:flex;width:100%}
html[data-mobile="1"] .seg button{flex:1}
html[data-mobile="1"] #kpiCards{grid-template-columns:1fr 1fr}
html[data-mobile="1"] html,
html[data-mobile="1"] body{height:auto;max-height:none;overflow:auto}
html[data-mobile="1"] .tkmain,
html[data-mobile="1"] .todomain,
html[data-mobile="1"] .mntmain{overflow:visible}

/* --- ecran d'orientation (pages reservees au grand ecran) --- */
.phone-block{max-width:520px;margin:0 auto;padding:38px 22px;
  text-align:center;color:var(--text)}
.phone-block .pb-logo{font-weight:700;letter-spacing:.06em;
  color:var(--text);margin-bottom:18px}
.phone-block .pb-logo b{color:var(--accent)}
.phone-block .pb-ico{font-size:46px;margin-bottom:10px}
.phone-block h1{font-size:19px;margin:0 0 12px}
.phone-block p{color:var(--muted);font-size:14px;line-height:1.5}
.phone-block .pb-ok{color:var(--text)}
.phone-block .pb-btn{display:inline-block;margin-top:18px;padding:12px 22px;
  background:var(--accent);color:var(--btn-text,#fff);border-radius:8px;
  text-decoration:none;font-weight:600}

.row>div{flex:1;min-width:150px}
/* TOUS les boutons : bord au bleu ONAIR.VISION, texte BLANC */
button{
  background:var(--accent);color:var(--btn-text,#fff);border:1px solid #558ed5;
  border-radius:6px;
  padding:9px 18px;font:600 14px/1 inherit;cursor:pointer}
button:hover{filter:brightness(1.1)}
button.ghost{background:transparent;color:#fff;
  border:1px solid #558ed5}
button.danger{background:transparent;color:var(--err);
  border:1px solid #558ed5}
button.small{padding:5px 10px;font-size:12.5px}
button:focus-visible{outline:2px solid var(--text);outline-offset:2px}

.msg{margin:10px 0 0;font-size:13.5px;min-height:1.2em}
.msg.err{color:var(--err)} .msg.ok{color:var(--ok)}
.hint{color:var(--muted);font-size:13px}
.members{background:var(--panel2);border:1px solid var(--line);
  border-radius:6px;padding:12px 14px;margin:6px 0}
.members label{display:inline-flex;align-items:center;gap:6px;margin:3px 14px 3px 0;
  text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--text)}
.members input[type=checkbox]{width:auto}

/* page de connexion */
.login-card{max-width:360px;margin:14vh auto;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;padding:30px 28px}
.login-card h1{margin-bottom:4px}
.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 22px;
  font-family:var(--mono)}
.login-card form>div{margin-bottom:14px}
@media (prefers-reduced-motion: no-preference){
  .panel{animation:rise .25s ease-out}
  @keyframes rise{from{opacity:0;transform:translateY(4px)}to{opacity:1}}
}

/* logo societe (page de connexion) */
.login-card .logo{
  display:block;width:230px;max-width:100%;margin:0 auto 18px;
  background:#fff;border-radius:8px;padding:10px 14px;
}

/* ===================== THEMES GRAPHIQUES =====================
   « Sombre » = palette historique (:root ci-dessus).
   « Clair » = fond blanc, memes variables surchargees. */
html[data-theme="light"]{
  --bg:#ffffff; --panel:#f4f7fa; --panel2:#e9eef5; --line:#cfd9e4;
  --text:#1a2433; --muted:#5a6b7e; --accent:#3f77c0; --accent-soft:#d7e6f7;
  --ok:#238a52; --warn:#a8720d; --err:#c03d3d;
}
html[data-tone="light"] .badge.admin{background:#e9ddf9;color:#6b3fa6}
html[data-tone="light"] .badge.user{background:#d7e6f7;color:#2d5f9e}
html[data-tone="light"] .badge.readonly{background:#e2e8ee;color:#54657a}
html[data-tone="light"] .badge.off{background:#f6dcdc;color:#a53c3c}
html[data-tone="light"] .toplogo{background:#fff;border-radius:6px}
html[data-tone="light"] button.ghost{color:var(--text)}
/* Regle « Clair » : tout bouton a texte blanc passe en NOIR */
html[data-tone="light"] button{color:#111}
html[data-tone="light"] button.danger{color:var(--err)}
/* liens-boutons du bandeau (AIDE, navigation) : noirs en Clair */
html[data-tone="light"] .topbar>a{color:#111}
html[data-tone="light"] .topbar>a:hover{color:var(--accent)}
html[data-tone="light"] .topbar>a[aria-current="page"]{color:var(--accent)}

/* ===== la collection de themes (palettes) ===== */
html[data-theme="camo"]{            /* Camouflage : olive drab, pochoir */
  --bg:#171c12; --panel:#1f2618; --panel2:#262e1d; --line:#3a4529;
  --text:#d6d8c4; --muted:#8f987b; --accent:#c8a02e; --accent-soft:#4a4420;
  --ok:#7a9c4a; --warn:#d0902e; --err:#c05b45;
}
html[data-theme="blueprint"]{       /* Blueprint : bureau d'etudes */
  --bg:#0c2440; --panel:#123056; --panel2:#173a66; --line:#2b5382;
  --text:#dce8f5; --muted:#8fb0cf; --accent:#5db7de; --accent-soft:#1d4d7a;
  --ok:#58c39a; --warn:#e0b25a; --err:#e57373;
}
html[data-theme="nuit"]{            /* Regie nuit : rouge, vision nocturne */
  --bg:#0a0a0c; --panel:#131013; --panel2:#1a1416; --line:#3a2426;
  --text:#d8b0b0; --muted:#8a6a6a; --accent:#c84040; --accent-soft:#4a1e1e;
  --ok:#b06060; --warn:#d07040; --err:#ff5050;
}
html[data-theme="phosphore"]{       /* Phosphore : CRT vert monochrome */
  --bg:#04120a; --panel:#072016; --panel2:#0a2a1c; --line:#14512f;
  --text:#7fe3a8; --muted:#3f8f63; --accent:#43d17a; --accent-soft:#0f3d24;
  --ok:#43d17a; --warn:#c9c94a; --err:#e06060; --btn-text:#08130b;
}
html[data-theme="ambre"]{           /* Ambre : console des annees 80 */
  --bg:#141006; --panel:#1e1809; --panel2:#28200c; --line:#4a3a14;
  --text:#e8c47a; --muted:#9a7f45; --accent:#e8a03a; --accent-soft:#4a350f;
  --ok:#b0c24a; --warn:#e8b04a; --err:#d06040; --btn-text:#08130b;
}
html[data-theme="sepia"]{           /* Sepia : papier chaud (famille claire) */
  --bg:#f3ecdf; --panel:#faf5ea; --panel2:#ece2cf; --line:#cbbc9f;
  --text:#3d3428; --muted:#7a6c58; --accent:#8a5a2a; --accent-soft:#e2d0b4;
  --ok:#4a7a3a; --warn:#9a6a10; --err:#a04030;
}
html[data-theme="contraste"]{       /* Contraste eleve : accessibilite */
  --bg:#000000; --panel:#0a0a0a; --panel2:#161616; --line:#9a9a9a;
  --text:#ffffff; --muted:#d0d0d0; --accent:#ffd400; --accent-soft:#3a3300;
  --ok:#00e070; --warn:#ffb000; --err:#ff4040; --btn-text:#000;
}
/* contraste eleve : interactions soulignees de bordures franches */
html[data-theme="contraste"] button,
html[data-theme="contraste"] .topbar>a{border-width:2px}
html[data-theme="contraste"] button:focus-visible,
html[data-theme="contraste"] a:focus-visible{outline:3px solid var(--accent)}

/* ------ panneau de preferences utilisateur (injecte par wld-common) ------ */
#wldPrefsBtn{background:none;border:1px solid var(--line);color:var(--muted);
  border-radius:8px;padding:5px 9px;cursor:pointer;font-size:14px;
  line-height:1}
#wldPrefsBtn:hover{color:var(--text);border-color:var(--accent)}
#wldPrefs{position:fixed;inset:0;background:rgba(8,12,18,.6);z-index:400;
  display:flex;align-items:flex-start;justify-content:center;
  overflow:auto;padding:60px 16px}
#wldPrefs[hidden]{display:none !important}
#wldPrefs .card{background:var(--panel);border:1px solid var(--accent);
  border-radius:12px;padding:20px 24px;width:min(380px,94vw);
  color:var(--text);font:15px/1.5 system-ui,sans-serif}
#wldPrefs h2{margin:0 0 12px}
#wldPrefs label.thm{display:flex;gap:10px;align-items:center;
  padding:9px 12px;border:1px solid var(--line);border-radius:8px;
  cursor:pointer;margin-bottom:8px}
#wldPrefs label.thm:hover{border-color:var(--accent)}
#wldPrefs label.thm input{width:auto}
#wldPrefs .sw{width:34px;height:20px;border-radius:4px;border:1px solid
  var(--line);flex:0 0 auto;position:relative;overflow:hidden}
#wldPrefs .sw i{position:absolute;right:3px;bottom:3px;width:8px;height:8px;
  border-radius:50%}
#wldPrefs .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
#wldPrefs label.thm{margin-bottom:6px}
#wldPrefs label.thm b{font-size:13px}
#wldPrefs label.thm .d{color:var(--muted);font-size:11px}
#wldPrefs .foot{display:flex;justify-content:flex-end;gap:10px;
  margin-top:14px}
#wldPrefs button{border-radius:8px;padding:7px 14px;cursor:pointer;
  font-size:13.5px;border:1px solid var(--line);background:none;
  color:var(--text)}
#wldPrefs button.save{background:var(--accent);border-color:var(--accent);
  color:#fff}
#wldPrefs .msg{font-size:12px;color:var(--muted);min-height:16px;
  margin-top:8px}

/* ===== pied de page legal (v9.59) ===== */
#wldPied{margin:38px 0 0;padding:14px 24px 22px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);
  display:flex;gap:16px;flex-wrap:wrap;align-items:center}
#wldPied a{color:var(--muted);text-decoration:none}
#wldPied a:hover{color:var(--accent);text-decoration:underline}
#wldPied .ed{margin-left:auto;opacity:.75}
html[data-mobile="1"] #wldPied{padding:14px 16px 20px;gap:12px}
html[data-mobile="1"] #wldPied .ed{margin-left:0;width:100%}
@media print{#wldPied{display:none}}

/* ===== bandeau d'echeance (v9.59) =====
   En tete de page, jamais en surimpression : il informe, il n'interrompt
   pas. */
.wldech{display:flex;align-items:center;gap:14px;padding:9px 18px;
  font-size:13.5px;border-bottom:1px solid var(--line);
  background:var(--panel2);color:var(--text);flex-wrap:wrap}
.wldech.proche{border-bottom-color:var(--accent)}
.wldech.chaud{border-bottom-color:var(--warn)}
.wldech.grave{border-bottom-color:var(--err)}
.wldech span{flex:1;min-width:240px}
.wldech a{color:var(--accent);font-weight:600;text-decoration:none;
  white-space:nowrap}
.wldech a:hover{text-decoration:underline}
.wldech .x{background:transparent;border:0;color:var(--muted);
  cursor:pointer;padding:2px 6px;font-size:14px}
@media print{.wldech{display:none}}

/* ===== acces suspendu (v9.59) ===== */
#wldSusp{border:1px solid var(--err);border-radius:10px;
  padding:16px 18px;margin-top:14px;text-align:left}
#wldSusp h3{margin:0 0 8px;font-size:15px;color:var(--err)}
#wldSusp p{margin:0 0 12px;font-size:13.5px;line-height:1.55}
#wldSusp .act{display:flex;gap:8px;flex-wrap:wrap}

/* ===== verrouillage d'ecran (v9.53) =====
   Au-dessus de TOUT, modales comprises : un ecran verrouille ne doit
   laisser passer aucune interaction avec la page. */
#wldLock{position:fixed;inset:0;z-index:9000;
  background:rgba(6,9,14,.94);display:flex;align-items:center;
  justify-content:center;padding:24px}
#wldLock[hidden]{display:none !important}
#wldLock .box{background:var(--panel);border:1px solid #558ed5;
  border-radius:14px;padding:26px 28px;width:min(420px,94vw);
  text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.55)}
#wldLock .lk{font-size:34px;margin:0 0 6px;line-height:1}
#wldLock h2{margin:0 0 8px;font-size:17px}
#wldLock p{color:var(--muted);font-size:13px;margin:0 0 16px;
  line-height:1.5}
#wldLock input{text-align:center}
#wldLock .msg{min-height:1.3em;margin:10px 0 0;font-size:13px}
#wldLockWarn{position:fixed;left:50%;transform:translateX(-50%);
  bottom:22px;z-index:8900;background:var(--panel);
  border:1px solid var(--warn);border-radius:10px;padding:10px 16px;
  font-size:13.5px;color:var(--text);
  box-shadow:0 6px 22px rgba(0,0,0,.45)}
#wldLockWarn[hidden]{display:none !important}
#wldLockWarn b{color:var(--warn);font-family:var(--mono)}
