
/* OneDev Studio V28 — header login + popup cleanup */
.v28-connect-open{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 16px;
  margin-left:8px;
  border:1px solid rgba(255,196,0,.28);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,208,0,.10),rgba(255,133,0,.045));
  color:#fff7dc;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 8px 30px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.035);
  transition:transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease;
}
.v28-connect-open::before{
  content:"";
  width:6px;
  height:6px;
  margin-right:8px;
  border-radius:50%;
  background:#ffd000;
  box-shadow:0 0 12px rgba(255,208,0,.7);
}
@media (hover:hover){
  .v28-connect-open:hover{
    transform:translateY(-1px);
    border-color:rgba(255,196,0,.55);
    background:linear-gradient(180deg,rgba(255,208,0,.17),rgba(255,133,0,.075));
    box-shadow:0 10px 34px rgba(0,0,0,.24),0 0 22px rgba(255,174,0,.055);
  }
}
@media (max-width:768px){
  .v28-connect-open{
    min-height:34px;
    padding:0 11px;
    margin-left:5px;
    font-size:9px;
  }
  .v28-connect-open::before{width:5px;height:5px;margin-right:6px}
}

/* Safety: old V27 floating/contact and experience popups stay hidden even if generated by legacy JS. */
.floating-project,
.cookie-banner,
.cookie-popup,
.experience-popup,
.site-experience,
.privacy-popup{
  display:none!important;
}


/* V28 account behavior */
button.v28-connect-open{
  font-family:inherit;
  cursor:pointer;
}
.v28-connect-open.v28-authenticated::before{
  background:#42e77b;
  box-shadow:0 0 12px rgba(66,231,123,.7);
}
.v28-account-menu{
  position:fixed;
  z-index:10050;
  width:min(310px,calc(100vw - 24px));
  padding:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(8,10,10,.96);
  box-shadow:0 24px 70px rgba(0,0,0,.55);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.v28-account-menu[hidden]{display:none!important}
.v28-account-head{
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 8px 14px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.v28-account-avatar{
  width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,#ffd000,#ff8500);
  color:#080808;font-size:10px;font-weight:1000;
}
.v28-account-avatar img{width:100%;height:100%;object-fit:cover}
.v28-account-head>div:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.v28-account-head small{font-size:6px;letter-spacing:.14em;color:#747979}
.v28-account-head strong{font-size:12px;color:#fff;overflow:hidden;text-overflow:ellipsis}
.v28-account-role{font-size:7px;color:#ffc700}
.v28-account-menu nav{display:grid;gap:4px;padding:9px 0}
.v28-account-menu nav a,.v28-account-logout{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 10px;border-radius:9px;color:#d7d9d9;
  font-size:8px;font-weight:800;text-decoration:none;transition:.2s;
}
.v28-account-menu nav a:hover{
  background:rgba(255,196,0,.08);color:#ffd000;
}
.v28-account-menu nav a[hidden]{display:none!important}
.v28-account-menu nav b{color:#777}
.v28-account-logout{
  border-top:1px solid rgba(255,255,255,.07);
  border-radius:0;color:#8c9191;
}
.v28-account-logout:hover{color:#fff}

.v28-login-fallback{
  position:fixed;z-index:10060;top:50%;left:50%;
  width:min(420px,calc(100vw - 30px));
  transform:translate(-50%,-48%) scale(.98);
  padding:28px;border:1px solid rgba(255,196,0,.18);
  border-radius:18px;background:rgba(7,9,9,.98);
  box-shadow:0 30px 100px rgba(0,0,0,.7);
  opacity:0;pointer-events:none;transition:.25s;
}
.v28-login-fallback.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.v28-login-fallback small{font-size:7px;letter-spacing:.15em;color:#ffc700}
.v28-login-fallback h3{margin:9px 0;font-size:24px}
.v28-login-fallback p{color:#858a8a;font-size:9px;line-height:1.7}
.v28-login-close{
  position:absolute;right:13px;top:12px;border:0;background:none;
  color:#777;font-size:22px;cursor:pointer;
}
.v28-discord-login{
  display:flex;justify-content:center;margin-top:22px;padding:14px;
  border-radius:10px;background:#5865F2;color:#fff!important;
  font-size:9px;font-weight:900;text-decoration:none;
}

/* V29 — existing V22 connect panel is the only account menu */
.v29-login-menu,.v29-account-menu,.v28-account-menu{display:none!important}
.v22-connect-panel .v29-connected-actions{display:none}
.v22-connect-panel.is-authenticated .v22-discord,
.v22-connect-panel.is-authenticated .v22-connect-sep,
.v22-connect-panel.is-authenticated .v22-auth-form{display:none!important}
.v22-connect-panel.is-authenticated .v29-connected-actions{display:grid;gap:7px;margin-top:20px}
.v22-connect-panel.is-authenticated .v22-connect-state{color:#66e28c}
.v29-account-card{display:flex;align-items:center;gap:12px;margin:18px 0 4px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}
.v29-account-card[hidden]{display:none!important}
.v29-account-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#ffd000,#ff8500);color:#080808;font-weight:1000}
.v29-account-avatar img{width:100%;height:100%;object-fit:cover}
.v29-account-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.v29-account-info strong{color:#fff;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.v29-account-info span{color:#ffc700;font-size:7px;font-weight:900}
.v29-connected-actions a{display:flex;align-items:center;justify-content:space-between;padding:12px 13px;border:1px solid rgba(255,255,255,.07);border-radius:10px;color:#ddd;text-decoration:none;font-size:9px;font-weight:850;background:rgba(255,255,255,.025);transition:.2s}
.v29-connected-actions a:hover{border-color:rgba(255,196,0,.25);color:#ffd000;background:rgba(255,196,0,.055)}
.v29-connected-actions a[data-v29-admin][hidden]{display:none!important}
.v29-connected-actions .v29-logout{color:#858a8a;background:transparent}
