:root{
    --bg:#0a0d10;
    --panel:#111519;
    --panel2:#141a21;
    --border:#1d242b;
    --text:#e6e9ec;
    --muted:#79838d;
    --green:#12b981;
    --green-dim:#0b2e23;
    --red:#e5484d;
}

*{ margin:0; padding:0; box-sizing:border-box; }

body{
    font-family:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;
    background:var(--bg);
    color:var(--text);
    min-height:100vh;
}

/* ===== navbar (identique au chat) ===== */
.navbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:0 26px; height:56px;
    background:var(--panel); border-bottom:1px solid var(--border);
    position:sticky; top:0; z-index:10;
}
.nav-brand{ display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:1.5px; font-size:14px; }
.nav-brand .mark{ color:var(--green); }
.nav-links{ display:flex; align-items:center; gap:4px; }
.nav-links a{
    color:var(--muted); text-decoration:none; font-size:12.5px; letter-spacing:.5px;
    text-transform:uppercase; padding:8px 14px; border-radius:5px;
    transition:color .2s, background .2s;
}
.nav-links a:hover{ color:var(--text); background:var(--panel2); }
.nav-links a.active{ color:var(--green); }
.nav-links a.nav-logout{ border:1px solid var(--border); margin-left:8px; }

/* ===== carte de login ===== */
.wrap{
    min-height:calc(100vh - 56px);
    display:flex; align-items:center; justify-content:center;
    padding:40px 20px;
}
.card{
    width:100%; max-width:420px;
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:12px;
    padding:38px 34px;
    text-align:center;
}
.logo{
    font-size:26px; color:var(--green);
    margin-bottom:18px;
}
h1{ font-size:22px; font-weight:800; letter-spacing:-.5px; }
.subtitle{
    margin:14px 0 26px;
    font-size:13px; color:var(--muted); line-height:1.7;
}

.btn{
    font-family:inherit; font-size:13px; font-weight:600; letter-spacing:.5px;
    padding:13px 20px; border-radius:6px; cursor:pointer;
    border:1px solid var(--border); background:var(--panel2); color:var(--text);
    transition:border-color .2s, background .2s;
    text-transform:uppercase; text-decoration:none;
    display:block; width:100%; text-align:center;
}
.btn:hover{ border-color:var(--green); }
.btn.primary{ background:var(--green-dim); border-color:var(--green); color:var(--green); }
.btn.primary:hover{ background:#0e3b2c; }
.btn.ghost{ background:transparent; }

/* separateur "puis" */
.sep{
    display:flex; align-items:center; gap:12px;
    margin:26px 0 20px; color:var(--muted); font-size:11px;
    text-transform:uppercase; letter-spacing:1px;
}
.sep::before,.sep::after{ content:""; flex:1; height:1px; background:var(--border); }

/* etape 2 : cachee tant que le login n'a pas fourni d'URL ; le JS l'affiche */
#step2{ display:none; }
#step2.show{ display:block; }

.step{
    font-size:12.5px; color:var(--muted); line-height:1.6;
    text-align:left; margin:18px 0 10px;
}

#code{
    width:100%;
    border:1px solid var(--border); background:var(--bg);
    color:var(--text); font-family:inherit; font-size:14px;
    padding:12px 14px; border-radius:6px; outline:none;
    margin-bottom:12px;
}
#code:focus{ border-color:var(--green); }
#code::placeholder{ color:#4d555e; }

#url{ margin-bottom:6px; }
#send{ margin-top:4px; }

#status{
    margin-top:16px; font-size:12.5px; min-height:18px;
    color:var(--muted);
}
#status.ok{ color:var(--green); }
#status.err{ color:var(--red); }

@media (max-width:700px){
    .navbar{ padding:0 14px; }
    .nav-links a{ padding:8px 9px; font-size:11px; }
    .card{ padding:30px 22px; }
}