/* hygiene-labo_setup.css — pages d'installation et d'inscription (hors appli) */
:root{
  --bg:#F6F7F9; --ink:#1A2027; --ink-soft:#5B6672; --line:#C9D0D8; --accent:#2D6FB0; --accent-hover:#245C93; --accent-soft:#EAF2FA;
  --sauge-bg:#E3F1EA; --sauge-ink:#1F5E43; --alert:#B23A35; --alert-bg:#F8E5E4; --warn-bg:#FDF3E1; --warn-ink:#8A5A00; --card:#FFFFFF;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{font-family:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);font-size:14px;line-height:1.5;
     background:var(--bg);-webkit-font-smoothing:antialiased;padding:32px 16px;}
.wrap{width:100%;max-width:520px;margin:0 auto;}
.brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin:0 0 22px;}
.brand img{width:56px;height:56px;border-radius:50%;}
.brand h1{font-weight:700;font-size:22px;letter-spacing:-.02em;line-height:1.2;margin:0;}
.brand small{display:block;font-size:13px;color:var(--ink-soft);margin-top:2px;}
.card{background:var(--card);border:1px solid #E3E7EC;border-radius:12px;padding:24px;box-shadow:0 1px 2px rgba(16,24,40,.05), 0 12px 32px -16px rgba(16,24,40,.18);}
h2{font-size:15px;margin:22px 0 2px;padding-top:18px;border-top:1px solid #E3E7EC;}
form h2:first-of-type{margin-top:0;padding-top:0;border-top:0;}
label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px;}
input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;font:16px 'IBM Plex Sans',sans-serif;background:#fff;color:var(--ink);}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.hint{font-size:12px;color:var(--ink-soft);margin-top:5px;}
.lead{font-size:13px;color:var(--ink-soft);margin:4px 0 0;}
.btn{display:block;text-align:center;text-decoration:none;margin-top:22px;width:100%;height:44px;line-height:44px;border:0;border-radius:8px;background:var(--accent);color:#FFFFFF;font:600 15px 'IBM Plex Sans',sans-serif;cursor:pointer;}
.btn:hover{background:var(--accent-hover);}
.msg{border-radius:8px;padding:10px 12px;font-size:13.5px;margin-bottom:16px;line-height:1.45;}
.msg.err{background:var(--alert-bg);color:var(--alert);}
.msg.ok{background:var(--sauge-bg);color:var(--sauge-ink);}
.msg.warn{background:var(--warn-bg);color:var(--warn-ink);}
.key{display:flex;gap:8px;align-items:stretch;margin:8px 0 4px;}
.key code{flex:1;min-width:0;font:500 13px 'IBM Plex Mono',ui-monospace,monospace;background:#F1F3F6;border:1px solid var(--line);border-radius:8px;padding:10px 12px;word-break:break-all;user-select:all;}
.key button{flex:none;border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 14px;font:600 13px 'IBM Plex Sans',sans-serif;cursor:pointer;}
ul.recap{margin:0;padding-left:18px;}
ul.recap li{margin:4px 0;word-break:break-word;}
.note{margin:18px 2px 0;font-size:12.5px;color:var(--ink-soft);text-align:center;line-height:1.45;}
.install-slot{display:flex;justify-content:center;margin-top:14px;}
.install-slot:empty, .install-slot:empty + .install-note{display:none;}
.install-slot .install-btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent);border:0;border-radius:8px;
  min-height:40px;padding:8px 16px;font:600 14px 'IBM Plex Sans',sans-serif;cursor:pointer;text-align:center;}
.install-slot .install-btn .ico{width:18px;height:18px;flex-shrink:0;}
@media (display-mode: standalone){ .install-slot, .install-note{display:none;} }
