/* Achievement dialog adapted from digg-clone's AchievementModal. */
.achievement-viewer[hidden], .achievement-viewer [hidden] { display:none !important; }
.achievement-viewer { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:12px; background:var(--modal-overlay-bg); backdrop-filter:var(--modal-overlay-filter); -webkit-backdrop-filter:var(--modal-overlay-filter); }
.achievement-viewer__dialog { position:relative; width:100%; max-width:448px; max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain; border:1px solid #e5e7eb; border-radius:28px; padding:20px; background:#fff; color:#111827; box-shadow:0 25px 50px -12px rgb(0 0 0 / 25%); outline:none; text-align:left; }
.achievement-viewer__toolbar { display:flex; min-height:36px; align-items:flex-start; justify-content:space-between; gap:8px; margin:-8px -8px 0; }
.achievement-viewer__controls { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.achievement-viewer button { border:0; font-family:inherit; cursor:pointer; }
.achievement-viewer svg { width:16px; height:16px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.achievement-viewer__controls button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; padding:0 12px; border-radius:999px; background:#f3f4f6; color:#374151; font-size:12px; font-weight:600; }
.achievement-viewer__close { display:flex; align-items:center; justify-content:center; width:36px; height:36px; flex-shrink:0; margin-left:auto; border-radius:50%; background:#f3f4f6; color:#6b7280; transition:background-color .15s,color .15s; }
.achievement-viewer__close svg { width:22px; height:22px; }
.achievement-viewer__close:hover, .achievement-viewer__controls button:hover { background:#e5e7eb; color:#111827; }
.achievement-viewer__art { position:relative; overflow:hidden; margin:12px 0; border-radius:16px; }
.achievement-viewer__scene { width:100%; height:min(340px,42dvh); min-height:200px; border-radius:16px; outline:none; }
.achievement-viewer__scene canvas { display:block; width:100%; height:100%; touch-action:none; cursor:grab; }
.achievement-viewer__scene canvas.is-dragging { cursor:grabbing; }
.achievement-viewer__fallback { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; pointer-events:none; }
.achievement-viewer__fallback img { width:160px; height:160px; object-fit:contain; }
.achievement-viewer__fallback p { padding:0 16px; margin:0; text-align:center; color:#6b7280; font-size:12px; }
.achievement-viewer .achievement-viewer__placeholder { width:96px; height:96px; color:#d9a119; }
.achievement-viewer__details { text-align:center; }
.achievement-viewer__details h2 { margin:0; font-size:20px; line-height:1.4; font-weight:900; color:inherit; }
.achievement-viewer__details > p { margin:8px 0 0; font-size:14px; line-height:1.5; color:#6b7280; }
.achievement-viewer__share { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:20px; padding:12px 20px; border-radius:999px; background:#2563eb; color:#fff; font-size:14px; font-weight:700; }
.achievement-viewer__share:hover { background:#1d4ed8; }
.achievement-viewer__details .achievement-viewer__share-status { overflow-wrap:anywhere; font-size:12px; user-select:all; }
.achievement-viewer button:focus-visible { outline:2px solid #3b82f6; outline-offset:2px; }
.achievement-viewer__scene:focus-visible { box-shadow:inset 0 0 0 2px #3b82f6; }
html.dark .achievement-viewer__dialog { background:#111827; border-color:#1f2937; color:#fff; }
html.dark .achievement-viewer__controls button, html.dark .achievement-viewer__close { background:#1f2937; color:#d1d5db; }
html.dark .achievement-viewer__close { color:#9ca3af; }
html.dark .achievement-viewer__close:hover, html.dark .achievement-viewer__controls button:hover { background:#374151; color:#fff; }
html.dark .achievement-viewer__details > p, html.dark .achievement-viewer__fallback p { color:#9ca3af; }
@media (min-width:640px) { .achievement-viewer__dialog { padding:28px; } .achievement-viewer__toolbar { margin:-16px -16px 0; } }
@media (prefers-reduced-motion:reduce) { .achievement-viewer__close { transition:none; } }
