*,:before,:after{box-sizing:border-box}body{background-color:var(--obsidienne);color:var(--blanc);font-family:var(--font-body);min-height:100dvh;padding:var(--space-md);justify-content:center;align-items:center;margin:0;display:flex;position:relative;overflow-x:hidden}.login-bg-glow{background:radial-gradient(ellipse 65% 55% at 50% 40%, var(--facette-soft) 0%, transparent 70%), radial-gradient(circle 800px at 50% 60%, #0c0c0fcc 0%, var(--obsidienne) 100%);pointer-events:none;z-index:0;transition:background var(--transition-base);position:fixed;inset:0}.login-bg-grid{background-image:linear-gradient(var(--hairline-2) 1px, transparent 1px), linear-gradient(90deg, var(--hairline-2) 1px, transparent 1px);pointer-events:none;opacity:.6;z-index:1;background-position:50%;background-size:40px 40px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#000 30%,#0000 80%);mask-image:radial-gradient(circle,#000 30%,#0000 80%)}.login-top-controls{z-index:10;-webkit-backdrop-filter:blur(12px);border:1px solid var(--hairline-2);background:#101014b3;border-radius:12px;align-items:center;gap:16px;padding:6px 12px;display:flex;position:fixed;top:18px;right:20px}.lang-switcher{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);gap:4px}.lang-btn{color:var(--gris-2);clip-path:var(--chamfer-sm);font-family:inherit;font-size:inherit;font-weight:inherit;transition:color var(--transition-fast), background var(--transition-fast);border-radius:8px;padding:3px 6px}.lang-btn:hover{color:var(--blanc)}.lang-btn.active{color:var(--blanc);background:var(--hairline)}.lang-divider{color:var(--gris-2);opacity:.4;font-size:var(--text-2xs)}.login-container{z-index:2;flex-direction:column;align-items:center;width:100%;max-width:440px;margin-top:40px;display:flex;position:relative}.login-gem-card{background:var(--gem-contour);width:100%;box-shadow:0 20px 50px #000000d9, 0 0 40px var(--facette-soft);clip-path:var(--chamfer-lg);border-radius:18px;padding:1px;transition:box-shadow .3s;position:relative}.login-gem-card:hover{box-shadow:0 24px 60px #000000e6, 0 0 50px var(--facette-glow)}.login-card-inner{-webkit-backdrop-filter:blur(20px);clip-path:inherit;text-align:center;background:#101014eb;border-radius:17px;padding:40px 32px 32px;position:relative}.version-badge{font-family:var(--font-mono);font-size:var(--text-3xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--facette);clip-path:var(--chamfer-sm);background:var(--facette-line);border:none;border-radius:8px;align-items:center;gap:6px;padding:4px 9px;display:inline-flex;position:absolute;top:14px;right:14px}.version-badge:before{content:"";background:color-mix(in srgb, var(--facette) 10%, var(--panneau));clip-path:inherit;z-index:-1;border-radius:7px;position:absolute;inset:1px}.badge-dot{background:var(--facette);width:5px;height:5px;box-shadow:0 0 6px var(--facette);border-radius:50%;animation:2s ease-in-out infinite pulse-dot;display:inline-block}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.login-logo-wrap{margin-bottom:var(--space-lg);justify-content:center;align-items:center;display:flex}.login-logo-wrap .onyx-logo-inline{filter:drop-shadow(0 4px 12px #00000080);width:auto;max-width:190px;height:38px}.login-title{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--blanc);text-shadow:0 2px 10px #00000080;margin:0 0 6px}.login-subtitle{font-family:var(--font-body);color:var(--gris);font-size:var(--text-md);font-weight:var(--fw-regular);margin:0 0 var(--space-2xl) 0;line-height:1.4}.google-btn{width:100%;clip-path:var(--chamfer-lg);z-index:0;color:#1a1a1a;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);cursor:pointer;filter:drop-shadow(0 4px 14px #0006);background:#fff6;border:none;border-radius:14px;justify-content:center;align-items:center;gap:12px;padding:14px 21px;transition:transform .15s,filter .2s,background-color .2s;display:inline-flex;position:relative}.google-btn:before{content:"";clip-path:inherit;z-index:-1;background:#fff;border-radius:13px;transition:background-color .2s;position:absolute;inset:1px}.google-btn>*{z-index:1;position:relative}.google-btn:hover{filter:drop-shadow(0 6px 22px #0009)drop-shadow(0 0 20px #ffffff4d);transform:translateY(-2px)}.google-btn:hover:before{background:#f4f4f4}.google-btn:active{transform:translateY(0)}.google-icon{flex-shrink:0}.login-note{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--gris-2);margin-top:14px}.status-badge{font-size:var(--text-xs);margin-bottom:var(--space-md);padding:7px 15px}.status-badge .status-dot{border-radius:50%;width:6px;height:6px}.status-badge.pending{background:var(--facette-line);color:var(--facette)}.status-badge.pending:before{background:color-mix(in srgb, var(--facette) 10%, var(--panneau))}.status-badge.pending .status-dot{background:var(--facette);box-shadow:0 0 6px var(--facette)}.status-badge.revoked{color:#ef4444;background:#ef444459}.status-badge.revoked:before{background:color-mix(in srgb, #ef4444 12%, var(--panneau))}.status-badge.revoked .status-dot{background:#ef4444;box-shadow:0 0 6px #ef4444}.status-msg{color:var(--gris);font-size:var(--text-md);margin:0 0 var(--space-lg) 0;line-height:1.5}.user-card-preview{clip-path:var(--chamfer-md);z-index:0;background:var(--hairline-2);margin-bottom:var(--space-lg);text-align:left;border-radius:12px;align-items:center;gap:14px;padding:13px 17px;display:flex;position:relative}.user-card-preview:before{content:"";background:color-mix(in srgb, var(--blanc) 3%, var(--panneau));clip-path:inherit;z-index:-1;border-radius:11px;position:absolute;inset:1px}.avatar-ring{background:linear-gradient(135deg, var(--facette) 0%, var(--hairline) 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:2px;display:flex}.user-avatar{object-fit:cover;background:var(--obsidienne);border-radius:50%;width:100%;height:100%}.user-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.user-name{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-lg);letter-spacing:var(--ls-tight);color:var(--blanc);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-badge-label{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--gris-2)}.login-btn-action{width:100%;clip-path:var(--chamfer-lg);z-index:0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--space-sm);border:none;border-radius:14px;padding:12px 19px;position:relative}.login-btn-action.btn-outline{color:var(--blanc);background:var(--hairline)}.login-btn-action.btn-outline:before{background:color-mix(in srgb, var(--blanc) 4%, var(--panneau))}.login-btn-action.btn-outline:hover{background:var(--gris);transform:translateY(-1px)}.login-btn-action.btn-outline:hover:before{background:color-mix(in srgb, var(--blanc) 8%, var(--panneau))}.btn-action-delete{color:var(--gris-2);font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--ls-label);text-transform:uppercase;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:8px}.btn-action-delete:hover{color:#ef4444;text-decoration:underline}.login-footer{margin-top:var(--space-xl);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-display);color:var(--gris-2);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.login-footer .login-legal-link{color:var(--gris-2);transition:color var(--transition-fast);border-bottom:1px solid;text-decoration:none}.login-footer .login-legal-link:hover{color:var(--accent)}@media (width<=480px){.login-container{padding:0}.login-card-inner{padding:32px 20px 24px}.login-title{font-size:var(--text-4xl)}}
