/* Online leaderboard panel shown on every game-over screen */
.ol{margin-top:1rem;text-align:left}
.ol-box{position:relative;overflow:hidden;border-radius:16px;border:1.5px solid rgba(45,226,255,.45);background:rgba(45,226,255,.07);padding:.85rem .9rem}
.ol-title{margin:0 0 .35rem;font:900 1.2rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.03em;color:var(--cyan)}
.ol-score{margin:0 0 .6rem;color:var(--muted);font-size:.92rem}
.ol-score b{color:#fff;font-family:var(--display);font-size:1.15rem}
.ol-note{margin:0 0 .6rem;color:var(--muted);font-size:.88rem;line-height:1.4}
.ol-note b{color:#fff}
.ol-form label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.35rem}
.ol-form input{width:100%;font:600 1.05rem var(--body);color:#fff;background:#0d0720;border:2px solid rgba(255,255,255,.25);border-radius:12px;padding:.65rem .75rem}
.ol-form input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(45,226,255,.25)}
.ol-hint{margin:.4rem 0 .6rem;color:var(--muted);font-size:.78rem;line-height:1.4}
.ol-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 .5rem}
.ol-row .abtn{flex:1 1 auto;min-height:46px;font-size:.95rem;padding:.6rem 1rem}
.ol-err{margin:.2rem 0 .5rem;color:#FF8BA0;font-weight:600;font-size:.9rem}
.ol-ok{margin:0 0 .3rem;color:var(--green);font-weight:700}
.ol-busy{display:flex;align-items:center;gap:.6rem;margin:.2rem 0;color:var(--muted);font-weight:600}
.ol-spin{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--cyan);animation:olspin .8s linear infinite;flex:none}
@keyframes olspin{to{transform:rotate(360deg)}}
.ol-link{display:inline-block;margin-top:.2rem;color:var(--gold);font-weight:700;font-size:.9rem}
.ol-ranks{list-style:none;padding:0;margin:.3rem 0 .6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}
.ol-ranks li{background:rgba(0,0,0,.35);border-radius:10px;padding:.4rem .3rem;text-align:center;display:flex;flex-direction:column;line-height:1.1}
.ol-ranks span{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ol-ranks b{font:900 1.45rem var(--display);color:#fff}
.ol-ranks small{font-size:.7rem;color:var(--muted)}
.ol-celebrate{display:flex;align-items:center;gap:.6rem;margin:-.1rem 0 .5rem}
.ol-celebrate p{margin:0;font:900 1.35rem/1 var(--display);text-transform:uppercase;color:var(--gold);text-shadow:0 0 18px rgba(255,197,61,.6)}
.ol-trophy{width:52px;height:52px;flex:none;animation:oltrophy 1.2s ease-in-out infinite alternate}
@keyframes oltrophy{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.08)}}
.ol-sharemsg{margin:0;font-size:.85rem;color:var(--green)}
.ol-sharemsg:empty{display:none}
.ol-conf{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;pointer-events:none;animation:olconf linear forwards}
@keyframes olconf{to{transform:translate(var(--dx),420px) rotate(var(--rot))}}
.lb-links{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
@media (prefers-reduced-motion: reduce){.ol-trophy,.ol-spin{animation:none}}
.lb-links .startback{margin:.6rem 0 0}
