/* Skeleton loading — đơn vị hành chính (block xám + shimmer) */
@keyframes px-sk-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.px-skeleton {
    width: 100%;
    min-height: 50vh;
}

.px-sk,
.px-skeleton__line,
.px-skeleton__pill,
.px-skeleton__btn,
.px-skeleton__block,
.px-skeleton__image,
.px-skeleton__option,
.px-skeleton__nav-grid {
    display: block;
    position: relative;
    overflow: hidden;
    background-color: #d4dae3;
    border-radius: 0.375rem;
}

.px-sk::after,
.px-skeleton__line::after,
.px-skeleton__pill::after,
.px-skeleton__btn::after,
.px-skeleton__block::after,
.px-skeleton__image::after,
.px-skeleton__option::after,
.px-skeleton__nav-grid::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.55) 50%,
        rgba(255, 255, 255, 0) 100%
    );
    animation: px-sk-shimmer 1.25s ease-in-out infinite;
}

.px-skeleton__line {
    height: 0.875rem;
    margin-bottom: 0.5rem;
}

.px-skeleton__line--sm { height: 0.75rem; }
.px-skeleton__line--md { height: 1rem; }
.px-skeleton__line--lg { height: 1.75rem; }

.px-skeleton__line.w-25 { width: 25%; }
.px-skeleton__line.w-30 { width: 30%; }
.px-skeleton__line.w-40 { width: 40%; }
.px-skeleton__line.w-45 { width: 45%; }
.px-skeleton__line.w-50 { width: 50%; }
.px-skeleton__line.w-55 { width: 55%; }
.px-skeleton__line.w-60 { width: 60%; }
.px-skeleton__line.w-75 { width: 75%; }
.px-skeleton__line.w-80 { width: 80%; }
.px-skeleton__line.w-85 { width: 85%; }
.px-skeleton__line.w-90 { width: 90%; }
.px-skeleton__line.w-100 { width: 100%; }

.px-skeleton__pill {
    width: 7rem;
    height: 2rem;
    border-radius: 2rem;
    flex-shrink: 0;
}

.px-skeleton__btn {
    height: 2.75rem;
    width: 100%;
}

.px-skeleton__block {
    height: 4rem;
    width: 100%;
}

.px-skeleton__block--timer { height: 5.5rem; }
.px-skeleton__block--score { height: 7rem; }

.px-skeleton__image {
    width: 100%;
    min-height: 10rem;
    aspect-ratio: 16 / 10;
}

.px-skeleton__image--card {
    min-height: 11rem;
    aspect-ratio: 16 / 9;
    border-radius: 0.75rem 0.75rem 0 0;
}

.px-skeleton__option {
    height: 3rem;
    width: 100%;
    margin-bottom: 0.5rem;
}

.px-skeleton__nav-grid {
    height: 8rem;
    width: 100%;
}

.px-skeleton__panel {
    background: #fff;
    border-radius: 1rem;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
}

.px-skeleton__panel--tall {
    min-height: 16rem;
}

.px-skeleton__float-card {
    background: #fff;
    border-radius: 1rem;
    padding: 1.25rem 1.5rem 1.5rem;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.1);
    margin-top: -3rem;
}

.px-skeleton__course-card {
    background: #fff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(15, 23, 42, 0.06);
}

.px-skeleton-course {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}

.px-skeleton-course__hero {
    padding: 2rem 0 7rem;
    background-color: #c8ced8;
}

.px-skeleton-course__hero .px-skeleton__line,
.px-skeleton-course__hero .px-skeleton__pill {
    background-color: #b8c0cc;
}

.px-skeleton-course__hero .px-skeleton__line::after,
.px-skeleton-course__hero .px-skeleton__pill::after {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.35) 50%,
        rgba(255, 255, 255, 0) 100%
    );
}

.px-skeleton-course__body {
    margin-top: -4.5rem;
    position: relative;
    z-index: 1;
    padding-bottom: 2rem;
}

/* —— Toolbar làm bài thi (PX) — */
.px-exam-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0 1rem;
}

.px-exam-toolbar__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #405189;
}

.px-exam-toolbar__back {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    color: #405189;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.7rem;
    padding: 0.35rem 0.5rem;
    border-radius: 0.375rem;
    transition: background-color 0.15s;
}

.px-exam-toolbar__back:hover {
    color: #2d3a63;
    /*background-color: rgba(64, 81, 137, 0.08);*/
}

.px-exam-meta-compact__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.45;
}

.px-exam-meta-compact__row span:last-child {
    max-width: 62%;
}
