/* ============================================================
   FINAL UX POLISH
   ============================================================ */
button{transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,border-color .14s ease}
button:not(:disabled):active{transform:translateY(1px)}
.nav-item:not(:disabled):hover,.outline-btn:hover,.small-action-btn:hover,.primary-inline-btn:hover{box-shadow:0 8px 22px rgba(18,59,89,.10)}
input,select,textarea{transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}
.view.active{animation:viewFade .18s ease}
@keyframes viewFade{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}
.empty-state{background:linear-gradient(180deg,rgba(248,251,252,.65),rgba(255,255,255,.35));border-radius:14px}
.panel-heading h2,.page-intro h2,.profile-title h2{text-wrap:balance}
.sidebar{backdrop-filter:blur(12px)}

.user-badge{display:grid;gap:1px;text-align:right;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;max-width:220px}
.user-badge strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-badge small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.updates-btn{position:relative}.updates-badge{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;border-radius:999px;background:var(--red);color:#fff;font-size:9px;display:grid;place-items:center;padding:0 4px}
.modal-backdrop{position:fixed;inset:0;background:rgba(9,25,38,.42);z-index:90}.patch-modal{position:fixed;z-index:91;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 28px));max-height:min(82vh,780px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 90px rgba(9,25,38,.25);padding:22px}.patch-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.patch-modal-head h2{margin:3px 0}.patch-close{border:1px solid var(--line);background:#fff;border-radius:999px;width:36px;height:36px;font-weight:900}.release-card{border-top:1px solid #edf2f4;padding:18px 0}.release-card.latest{border-top:0;padding-top:8px}.release-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.release-head h3{margin:4px 0 0;font-size:17px}.release-head small{color:var(--muted)}.release-version{display:inline-flex;background:#e8f2f8;color:var(--blue);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.release-items{display:grid;gap:10px;margin-top:12px}.release-item{background:#f7fafb;border-radius:14px;padding:12px}.release-item strong{font-size:12px}.release-item p{margin:4px 0 0;color:#5a707f;font-size:11px;line-height:1.45}
