/* Топ-3 в положении урока — «медали с блёстками», как у сложных задач (difficulty.css):
   .medal-badge.medal-1/2/3 — круглый значок места (переливающийся фон, блик, искры);
   .medal-text.medal-1/2/3  — переливающееся имя участника с искоркой.
   1 — золото, 2 — серебро, 3 — бронза. */

.medal-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    overflow: hidden;
    isolation: isolate;
    background-size: 250% 250%;
    font-weight: bold;
    animation: gold-shift 5s ease-in-out infinite;
}

.medal-badge.medal-1 {
    background-image: linear-gradient(135deg, #8a6a12 0%, #d4af37 22%, #fff1a8 42%, #e8c547 55%, #b8860b 78%, #f3d36b 100%);
    color: #3a2a00 !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 0 10px rgba(212, 175, 55, 0.7);
}

.medal-badge.medal-2 {
    background-image: linear-gradient(135deg, #6f7680 0%, #b8bec7 22%, #ffffff 42%, #d5dae1 55%, #8e959e 78%, #e3e7ec 100%);
    color: #2b3036 !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5), 0 0 9px rgba(170, 180, 192, 0.75);
}

.medal-badge.medal-3 {
    background-image: linear-gradient(135deg, #6b3a12 0%, #b06a2c 22%, #f3c08a 42%, #cd7f32 55%, #8c4a1a 78%, #e0a066 100%);
    color: #2e1600 !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35), 0 0 9px rgba(205, 127, 50, 0.65);
}

/* Пробегающий блик — у каждого места свой ритм, чтобы три значка не мигали синхронно */
.medal-badge::before {
    content: '';
    position: absolute;
    inset: -50%;
    background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.8) 50%, transparent 60%);
    transform: translateX(-100%);
    animation: gold-glint 3.2s ease-in-out infinite;
    pointer-events: none;
    z-index: -1;
}

.medal-badge.medal-2::before { animation-duration: 3.6s; animation-delay: 0.6s; }
.medal-badge.medal-3::before { animation-duration: 4s; animation-delay: 1.2s; }

/* Искры */
.medal-badge::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 24% 26%, #fff 0 1.2px, transparent 2.1px),
        radial-gradient(circle at 74% 22%, #fff 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 80% 72%, #fff 0 1.1px, transparent 1.9px),
        radial-gradient(circle at 30% 78%, #fff 0 1px, transparent 1.8px);
    animation: gold-twinkle 2.4s ease-in-out infinite;
    pointer-events: none;
    z-index: -1;
}

.medal-badge.medal-2::after { animation-delay: 0.8s; }
.medal-badge.medal-3::after { animation-delay: 1.6s; }

.medal-text {
    position: relative;
    display: inline-block;
    max-width: 100%;
    box-sizing: border-box;
    padding-right: 0.75em;
    font-weight: 600;
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gold-text-shift 3s linear infinite;
}

.medal-text.medal-1 {
    background-image: linear-gradient(90deg, #8a6408 0%, #b8860b 30%, #e9c24a 45%, #fff0a8 50%, #e9c24a 55%, #b8860b 70%, #8a6408 100%);
    color: #b8860b;
    filter: drop-shadow(0 0 0.6px rgba(110, 75, 0, 0.45));
}

.medal-text.medal-2 {
    background-image: linear-gradient(90deg, #454b53 0%, #6b737d 30%, #9aa2ac 45%, #dfe4ea 50%, #9aa2ac 55%, #6b737d 70%, #454b53 100%);
    color: #6b737d;
    filter: drop-shadow(0 0 0.6px rgba(40, 45, 55, 0.5));
}

.medal-text.medal-3 {
    background-image: linear-gradient(90deg, #6b3a12 0%, #a35d22 30%, #d99555 45%, #f6cfa0 50%, #d99555 55%, #a35d22 70%, #6b3a12 100%);
    color: #a35d22;
    filter: drop-shadow(0 0 0.6px rgba(80, 35, 0, 0.45));
}

.medal-text::after {
    content: '✦';
    position: absolute;
    top: -0.25em;
    right: 0;
    font-size: 0.6em;
    animation: gold-twinkle 1.8s ease-in-out infinite;
    pointer-events: none;
}

.medal-text.medal-1::after { color: #e6b422; -webkit-text-fill-color: #e6b422; text-shadow: 0 0 3px rgba(255, 200, 40, 0.95); }
.medal-text.medal-2::after { color: #c9d0d8; -webkit-text-fill-color: #c9d0d8; text-shadow: 0 0 3px rgba(220, 228, 238, 0.95); animation-delay: 0.6s; }
.medal-text.medal-3::after { color: #d98a45; -webkit-text-fill-color: #d98a45; text-shadow: 0 0 3px rgba(240, 160, 90, 0.9); animation-delay: 1.2s; }

/* Тёмные темы: на тёмном фоне металл светлее, чтобы имя не сливалось. */
html[data-dark] .medal-text.medal-1 {
    background-image: linear-gradient(90deg, #c9971c 0%, #e2b33a 30%, #f5d76e 45%, #fff6c8 50%, #f5d76e 55%, #e2b33a 70%, #c9971c 100%);
}
html[data-dark] .medal-text.medal-2 {
    background-image: linear-gradient(90deg, #9aa2ac 0%, #c3c9d1 30%, #e6eaef 45%, #ffffff 50%, #e6eaef 55%, #c3c9d1 70%, #9aa2ac 100%);
}
html[data-dark] .medal-text.medal-3 {
    background-image: linear-gradient(90deg, #c06f2e 0%, #d98a45 30%, #f0b27a 45%, #ffe0bf 50%, #f0b27a 55%, #d98a45 70%, #c06f2e 100%);
}

@media (prefers-color-scheme: dark) {
    [data-theme="auto"] .medal-text.medal-1 {
        background-image: linear-gradient(90deg, #c9971c 0%, #e2b33a 30%, #f5d76e 45%, #fff6c8 50%, #f5d76e 55%, #e2b33a 70%, #c9971c 100%);
    }
    [data-theme="auto"] .medal-text.medal-2 {
        background-image: linear-gradient(90deg, #9aa2ac 0%, #c3c9d1 30%, #e6eaef 45%, #ffffff 50%, #e6eaef 55%, #c3c9d1 70%, #9aa2ac 100%);
    }
    [data-theme="auto"] .medal-text.medal-3 {
        background-image: linear-gradient(90deg, #c06f2e 0%, #d98a45 30%, #f0b27a 45%, #ffe0bf 50%, #f0b27a 55%, #d98a45 70%, #c06f2e 100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .medal-badge, .medal-badge::before, .medal-badge::after, .medal-text, .medal-text::after {
        animation: none;
    }
    .medal-badge::before {
        display: none;
    }
}

/* Имя ученика в положении/рейтинге — ссылка на профиль (только для преподавателя) */
.standings-profile-link { color: inherit; text-decoration: none; }
.standings-profile-link:hover { text-decoration: underline; text-decoration-style: dotted; }
