.ts-exam-page,
.ts-exam-detail-page {
    display: grid;
    gap: 32px;
}

.ts-exam-page *,
.ts-exam-page *::before,
.ts-exam-page *::after,
.ts-exam-detail-page *,
.ts-exam-detail-page *::before,
.ts-exam-detail-page *::after {
    box-sizing: border-box;
}

.ts-exam-hero,
.ts-exam-detail-hero {
    display: grid;
    gap: 24px;
    padding: 32px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 30px;
    background:
        radial-gradient(circle at top left, rgba(14, 165, 233, 0.18), transparent 34%),
        radial-gradient(circle at bottom right, rgba(34, 197, 94, 0.12), transparent 28%),
        linear-gradient(135deg, #eff6ff 0%, #ffffff 48%, #f8fafc 100%);
}

.ts-exam-hero {
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, 470px);
    align-items: start;
}

.ts-exam-hero__content,
.ts-exam-detail-hero__main,
.ts-exam-filter,
.ts-exam-main-stack,
.ts-exam-sidebar,
.ts-exam-timeline,
.ts-exam-upcoming-grid,
.ts-exam-related-grid,
.ts-exam-detail-note-grid,
.ts-exam-milestones,
.ts-exam-province-list,
.ts-exam-detail-hero__facts {
    display: grid;
}

.ts-exam-hero__content {
    gap: 16px;
}

.ts-exam-hero__content h1,
.ts-exam-detail-hero__main h1 {
    margin: 0;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
}

.ts-exam-hero__lead,
.ts-exam-detail-meta,
.ts-exam-event-card__meta,
.ts-exam-event-card__footer,
.ts-exam-milestone__meta,
.ts-exam-detail-hero__facts article span,
.ts-exam-filter__intro p:last-child {
    color: #64748b;
}

.ts-exam-hero__chips,
.ts-exam-filter__presets,
.ts-exam-filter__actions,
.ts-exam-detail-meta,
.ts-exam-event-card__meta,
.ts-exam-event-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ts-exam-hero__chips span,
.ts-exam-detail-meta span,
.ts-exam-event-card__meta span {
    padding: 8px 12px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(8px);
}

.ts-exam-filter {
    gap: 16px;
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 22px 44px rgba(15, 23, 42, 0.08);
}

.ts-exam-filter__intro p {
    margin: 0;
}

.ts-exam-filter__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ts-exam-filter label {
    display: grid;
    gap: 6px;
    color: #334155;
    font-weight: 600;
}

.ts-exam-filter input,
.ts-exam-filter select {
    width: 100%;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    padding: 13px 14px;
    font: inherit;
    background: #fff;
}

.ts-exam-filter__search {
    grid-column: 1 / -1;
}

.ts-exam-filter__presets button,
.ts-exam-filter__ghost,
.ts-exam-link-button {
    border: 1px solid var(--ts-border);
    border-radius: 999px;
    padding: 10px 15px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.ts-exam-filter__presets button {
    background: rgba(248, 250, 252, 0.95);
}

.ts-exam-filter__actions {
    margin-top: 4px;
}

.ts-exam-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ts-exam-stat-card,
.ts-exam-upcoming-card,
.ts-exam-event-card,
.ts-exam-timeline-group,
.ts-exam-milestone {
    padding: 20px;
    border: 1px solid var(--ts-border);
    border-radius: 24px;
    background: #fff;
}

.ts-exam-stat-card strong {
    display: block;
    margin-bottom: 6px;
    font-size: 1.95rem;
    line-height: 1;
}

.ts-exam-main-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 20px;
    align-items: start;
}

.ts-exam-main-stack,
.ts-exam-sidebar,
.ts-exam-milestones {
    gap: 20px;
}

.ts-exam-upcoming-grid,
.ts-exam-related-grid,
.ts-exam-detail-note-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ts-exam-upcoming-card {
    position: relative;
    overflow: hidden;
    gap: 10px;
}

.ts-exam-upcoming-card::after {
    content: "";
    position: absolute;
    inset: auto -22px -32px auto;
    width: 84px;
    height: 84px;
    border-radius: 999px;
    background: rgba(59, 130, 246, 0.08);
}

.ts-exam-upcoming-card small,
.ts-exam-event-card__label {
    color: #2563eb;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ts-exam-upcoming-card strong,
.ts-exam-event-card__date strong {
    display: block;
    font-size: 1.2rem;
}

.ts-exam-upcoming-card h3,
.ts-exam-event-card h3,
.ts-exam-timeline-item h4 {
    margin: 0;
}

.ts-exam-upcoming-card p,
.ts-exam-event-card p,
.ts-exam-timeline-item p,
.ts-exam-milestone p,
.ts-exam-sidebar p {
    margin: 0;
}

.ts-exam-event-card {
    display: grid;
    grid-template-columns: 136px minmax(0, 1fr);
    gap: 18px;
}

.ts-exam-event-card__date,
.ts-exam-event-card__content,
.ts-exam-upcoming-card,
.ts-exam-timeline-month,
.ts-exam-timeline-item,
.ts-exam-province-list,
.ts-exam-milestone,
.ts-exam-detail-hero__facts article {
    display: grid;
    gap: 10px;
}

.ts-exam-event-card__date {
    align-content: start;
}

.ts-exam-event-card__footer {
    align-items: center;
    justify-content: space-between;
}

.ts-exam-event-card__footer a,
.ts-exam-upcoming-card a,
.ts-exam-province-list a,
.ts-exam-related-grid a,
.ts-exam-sidebar a,
.ts-exam-timeline-item a {
    color: #1d4ed8;
    text-decoration: none;
    font-weight: 700;
}

.ts-exam-timeline {
    gap: 18px;
}

.ts-exam-timeline-group {
    padding: 24px;
}

.ts-exam-timeline-group h3 {
    margin: 0 0 16px;
    font-size: 1.35rem;
}

.ts-exam-timeline-month {
    position: relative;
    gap: 14px;
}

.ts-exam-timeline-month::before {
    content: "";
    position: absolute;
    left: 13px;
    top: 14px;
    bottom: 14px;
    width: 2px;
    background: linear-gradient(180deg, #60a5fa 0%, #bfdbfe 100%);
}

.ts-exam-timeline-item {
    position: relative;
    padding-left: 40px;
}

.ts-exam-timeline-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 28px;
    height: 28px;
    border: 6px solid #dbeafe;
    border-radius: 999px;
    background: #2563eb;
    box-shadow: 0 0 0 4px #eff6ff;
}

.ts-exam-timeline-item__date {
    color: #0f172a;
    font-weight: 700;
}

.ts-exam-timeline-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ts-exam-timeline-item__meta span {
    padding: 6px 10px;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: 0.9rem;
}

.ts-exam-province-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.ts-exam-province-list > div {
    padding: 16px;
    border: 1px solid var(--ts-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.ts-exam-province-list p + a,
.ts-exam-sidebar p + a {
    margin-top: 6px;
}

.ts-exam-detail-hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
    align-items: start;
}

.ts-exam-detail-hero__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ts-exam-detail-hero__facts article {
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.82);
}

.ts-exam-detail-hero__facts article strong {
    font-size: 1.05rem;
}

.ts-exam-milestone {
    gap: 8px;
}

.ts-exam-milestone__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ts-exam-milestone__meta strong {
    font-size: 1.05rem;
}

.ts-exam-milestone__meta span {
    white-space: nowrap;
}

.ts-score-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 28px;
    border: 1px solid rgba(29, 78, 216, 0.12);
    border-radius: 28px;
    background:
        radial-gradient(circle at right center, rgba(37, 99, 235, 0.14), transparent 26%),
        linear-gradient(135deg, #eff6ff 0%, #ffffff 55%, #ecfeff 100%);
}

.ts-score-cta__content p:last-child {
    margin-bottom: 0;
}

.ts-score-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.ts-news-sidebar-box,
.ts-exam-related-grid > article {
    border-radius: 22px;
}

@media (max-width: 1080px) {
    .ts-exam-hero,
    .ts-exam-detail-hero,
    .ts-exam-main-layout,
    .ts-exam-stats,
    .ts-score-cta {
        grid-template-columns: 1fr;
    }

    .ts-exam-sidebar {
        order: 2;
    }
}

@media (max-width: 860px) {
    .ts-exam-filter__grid,
    .ts-exam-upcoming-grid,
    .ts-exam-related-grid,
    .ts-exam-detail-note-grid,
    .ts-exam-detail-hero__facts,
    .ts-exam-province-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ts-exam-hero,
    .ts-exam-detail-hero,
    .ts-exam-stat-card,
    .ts-exam-timeline-group,
    .ts-exam-upcoming-card,
    .ts-exam-event-card,
    .ts-score-cta {
        padding: 20px;
    }

    .ts-exam-event-card {
        grid-template-columns: 1fr;
    }

    .ts-exam-timeline-item {
        padding-left: 34px;
    }

    .ts-exam-timeline-item::before {
        width: 22px;
        height: 22px;
        border-width: 5px;
    }
}
