/* ===== Auth screen ===== */
#auth-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;z-index:1;
}
.auth-card{
  width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 26px;
}
.auth-tabs{display:flex;gap:6px;margin-bottom:18px;}
.auth-tab-btn{
  flex:1;font-family:var(--font-mono);font-size:12px;letter-spacing:1px;background:none;border:1px solid var(--line);
  color:var(--dim);padding:10px;border-radius:9px;cursor:pointer;
}
.auth-tab-btn.active{color:var(--paper);border-color:var(--volt);background:var(--panel-2);}
.auth-form{display:flex;flex-direction:column;gap:14px;}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--dim);letter-spacing:.5px;}
.auth-form input{
  font-family:var(--font-body);font-size:14px;background:var(--panel-2);border:1px solid var(--line);color:var(--paper);
  padding:11px 12px;border-radius:9px;outline:none;
}
.auth-form input:focus{border-color:var(--volt);}
.auth-submit{
  margin-top:4px;font-family:var(--font-mono);font-weight:700;font-size:13px;letter-spacing:.5px;background:var(--volt);
  color:#0A0B10;border:none;padding:13px;border-radius:9px;cursor:pointer;
}
.auth-error{color:var(--riot);font-family:var(--font-mono);font-size:12px;min-height:16px;margin:12px 0 0;}
.auth-note{color:var(--dim);font-family:var(--font-mono);font-size:11px;line-height:1.6;margin:14px 0 0;}

/* ===== brandbar additions ===== */
.brandbar-right{display:flex;align-items:center;gap:8px;}
.user-badge{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;color:var(--dim);}
.user-badge #userName{color:var(--paper);font-weight:600;}
#friendsBtn{position:relative;}
.badge-dot{
  position:absolute;top:-4px;right:-4px;width:9px;height:9px;background:var(--pink);border-radius:50%;
  box-shadow:0 0 6px var(--pink);
}

/* ===== streak chip on mode cards ===== */
.mode-card{position:relative;}
.streak-chip{
  position:absolute;top:12px;right:12px;font-family:var(--font-mono);font-size:11px;font-weight:700;
  background:var(--panel-2);border:1px solid var(--line);color:var(--amber);padding:3px 8px;border-radius:20px;
}

/* ===== Friends modal ===== */
.modal-backdrop{
  position:fixed;inset:0;background:rgba(6,7,11,0.75);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal-card{
  width:100%;max-width:440px;max-height:82vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);
  border-radius:18px;padding:24px;
}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.modal-header h3{font-family:var(--font-display);font-size:18px;margin:0;}
.friend-code-row{
  display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;margin-bottom:16px;font-family:var(--font-mono);font-size:13px;color:var(--dim);
}
.friend-code-row code{color:var(--volt);font-size:16px;letter-spacing:2px;flex:1;}
.add-friend-row{display:flex;gap:8px;margin-bottom:6px;}
.add-friend-row input{
  flex:1;font-family:var(--font-mono);font-size:13px;background:var(--panel-2);border:1px solid var(--line);
  color:var(--paper);padding:10px 12px;border-radius:9px;outline:none;text-transform:uppercase;
}
.add-friend-row button{
  font-family:var(--font-mono);font-size:12px;font-weight:700;background:var(--volt);color:#0A0B10;border:none;
  padding:0 16px;border-radius:9px;cursor:pointer;
}
.friend-section-title{
  font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--dim);margin:20px 0 10px;
}
.friend-row{
  display:flex;flex-direction:column;gap:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;margin-bottom:10px;
}
.friend-row .top{display:flex;justify-content:space-between;align-items:center;}
.friend-row .name{font-family:var(--font-body);font-weight:600;font-size:14px;}
.friend-row .streaks{display:flex;flex-wrap:wrap;gap:6px;}
.friend-row .streaks span{
  font-family:var(--font-mono);font-size:10px;background:var(--panel);border:1px solid var(--line);color:var(--dim);
  padding:2px 7px;border-radius:20px;
}
.friend-row .streaks span.active{color:var(--amber);border-color:var(--amber);}
.friend-row .accept-btn{
  font-family:var(--font-mono);font-size:11px;font-weight:700;background:var(--calm);color:#04211c;border:none;
  padding:7px 12px;border-radius:8px;cursor:pointer;
}
.empty-note{color:var(--dim);font-family:var(--font-mono);font-size:12px;}

/* ===== difficulty selector (Free Play only) ===== */
.difficulty-row{align-items:center;gap:10px;margin-bottom:18px;}
.difficulty-label{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--dim);margin-right:2px;}
.diff-btn{
  font-family:var(--font-mono);font-size:12px;letter-spacing:1px;background:none;border:1px solid var(--line);
  color:var(--dim);padding:8px 16px;border-radius:9px;cursor:pointer;
}
.diff-btn.active{color:#0A0B10;border-color:var(--volt);background:var(--volt);font-weight:700;}

/* ===== Friends modal — internal tabs ===== */
.modal-tabs{margin-bottom:16px;}

/* ===== Challenge banner (shown when picking a friend to challenge) ===== */
.challenge-banner{
  background:#2a1520;border:1px solid var(--pink);color:var(--pink);font-family:var(--font-mono);
  font-size:12px;padding:10px 14px;border-radius:10px;margin-bottom:14px;line-height:1.5;
}

/* ===== Challenge rows (incoming "beat my score" challenges) ===== */
.challenge-row{
  background:#1c1420;border:1px solid var(--pink);border-radius:12px;padding:12px 14px;margin-bottom:10px;
}
.challenge-row .msg{font-family:var(--font-body);font-size:13px;color:var(--paper);margin-bottom:10px;line-height:1.5;}
.challenge-row .msg b{color:var(--pink);}
.challenge-row .actions{display:flex;gap:8px;}
.challenge-row .actions button{
  font-family:var(--font-mono);font-size:11px;font-weight:700;border-radius:8px;padding:7px 12px;cursor:pointer;border:none;
}
.challenge-row .play-btn{background:var(--pink);color:#1c0a12;}
.challenge-row .dismiss-btn{background:var(--panel);color:var(--dim);border:1px solid var(--line) !important;}

/* ===== Leaderboard ===== */
.lb-mode-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;}
.lb-mode-picker button{
  font-family:var(--font-mono);font-size:11px;letter-spacing:1px;background:none;border:1px solid var(--line);
  color:var(--dim);padding:7px 12px;border-radius:8px;cursor:pointer;
}
.lb-mode-picker button.active{color:#0A0B10;background:var(--volt);border-color:var(--volt);font-weight:700;}
.lb-row{
  display:flex;justify-content:space-between;align-items:center;background:var(--panel-2);border:1px solid var(--line);
  border-radius:10px;padding:10px 14px;margin-bottom:8px;font-family:var(--font-body);font-size:13px;
}
.lb-row.me{border-color:var(--volt);}
.lb-row .lb-rank{font-family:var(--font-mono);color:var(--dim);width:22px;display:inline-block;}
.lb-row .lb-name{font-weight:600;}
.lb-row .lb-score{font-family:var(--font-mono);font-weight:700;}
.lb-row .lb-score.unplayed{color:var(--dim);font-weight:400;font-style:italic;}
