.activities-page {
    max-width: 1120px;
    margin: 0 auto;
    padding: clamp(1.25rem, 3vw, 2.25rem) clamp(1rem, 3vw, 2rem);
}

.activities-shell {
    display: grid;
    gap: clamp(1rem, 2.2vw, 1.75rem);
}

.activities-hero {
    max-width: 760px;
}

.activities-hero h1 {
    margin: 0;
    color: var(--text-primary);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.activities-lead {
    max-width: 660px;
    margin: 1rem 0 0;
    color: var(--text-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.75;
}

.activities-breadcrumb {
    color: var(--text-muted);
    font-size: .9rem;
}

.activities-rules {
    display: grid;
    gap: .75rem;
    padding: clamp(.9rem, 2vw, 1.2rem);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
    background: var(--surface-subtle);
}

.activities-rules h2 {
    margin: 0;
    color: var(--text-primary);
    font-size: 1rem;
}

.activities-rules ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .45rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.activities-rules li {
    position: relative;
    min-width: 0;
    padding-left: 1rem;
    color: var(--text-muted);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.activities-rules li::before {
    position: absolute;
    top: .65em;
    left: 0;
    width: .35rem;
    height: .35rem;
    content: "";
    background: var(--brand-accent);
    border-radius: 50%;
}

.activities-empty {
    padding: clamp(1.35rem, 4vw, 2.5rem);
    background: var(--surface-bg);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
    box-shadow: var(--shadow-card);
}

.activities-empty-heading {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.activities-empty-icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--brand-accent);
    background: var(--brand-accent-soft);
    border: 1px solid var(--surface-border);
    border-radius: 50%;
}

.activities-empty h2,
.activities-planned h3,
.activities-planned-card h4 {
    color: var(--text-primary);
}

.activities-empty h2 {
    margin: 0 0 0.5rem;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.activities-empty-heading p,
.activities-planned-card p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.7;
}

.activities-planned {
    margin-top: 2rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--surface-border);
}

.activities-planned h3 {
    margin: 0 0 1rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.activities-planned-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.activities-planned-card {
    padding: 1.25rem;
    background: var(--surface-subtle);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
}

.activities-planned-card > i {
    margin-bottom: 0.85rem;
    color: var(--brand-accent);
    font-size: 1.2rem;
}

.activities-planned-card h4 {
    margin: 0 0 0.4rem;
    font-size: 1rem;
}

.activities-framework-note {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    margin: 1.25rem 0 0;
    color: var(--text-muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

.activities-framework-note i {
    margin-top: 0.2rem;
    color: var(--semantic-info);
}

.activities-hub-list { display:grid; gap:1.25rem; }
.activities-hub-card { display:grid; grid-template-columns:minmax(0, 1fr) minmax(260px, 40%); gap:clamp(1rem, 3vw, 2.5rem); min-height:260px; overflow:hidden; border:1px solid var(--surface-border); border-radius:var(--radius-standard); background:var(--surface-bg); min-width:0; box-shadow:var(--shadow-card); }
.activities-hub-copy { display:grid; align-content:center; justify-items:start; gap:1rem; padding:clamp(1.5rem, 4vw, 3rem); min-width:0; }
.activities-hub-thumbnail { width:100%; height:100%; min-height:260px; object-fit:cover; background:var(--surface-subtle); }
.activities-hub-card h2,.activities-hub-card p { margin:0; overflow-wrap:anywhere; }
.activities-status { font-weight:700; color:var(--text-muted); }
#activities-status.activities-status--pagination { padding:.25rem 0; margin:0; border:0; color:var(--text-muted); background:transparent; font-size:.875rem; font-weight:500; }
.activities-promotion, .activities-work { padding:1rem; background:var(--surface-bg); border:1px solid var(--surface-border); border-radius:var(--radius-standard); }
.activities-works-section { display:grid; gap:clamp(1rem,2vw,1.5rem); padding-top:clamp(.5rem,1.5vw,1rem); }
.activities-groups { display:grid; gap:clamp(1.25rem,3vw,2rem); min-width:0; }
.activities-category { display:grid; gap:.75rem; min-width:0; }
.activities-category + .activities-category { margin-top:clamp(.25rem,1vw,.5rem); padding-top:clamp(1.25rem,3vw,1.75rem); border-top:1px solid var(--surface-border); }
.activities-category > h3 { min-width:0; margin:0; color:var(--brand-accent); font-size:clamp(1.1rem,2vw,1.25rem); font-weight:800; line-height:1.45; letter-spacing:.01em; overflow-wrap:anywhere; }
.activities-category-status { min-height:1.35rem; margin:0; color:var(--text-muted); font-size:.875rem; }
.activities-category-empty { margin:0; color:var(--text-muted); }
.activities-category-pagination { display:flex; flex-wrap:wrap; gap:.45rem; }
.activities-category-pagination .btn { padding:.35rem .65rem; }
.activities-category-pagination a[aria-disabled="true"] { pointer-events:none; opacity:.65; }
.activities-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; min-width:0; }
.activities-work { display:grid; gap:.65rem; min-width:0; }
.activities-work-image { width:100%; min-width:0; padding:0; overflow:hidden; border:0; border-radius:calc(var(--radius-standard) - 2px); background:transparent; cursor:zoom-in; }
.activities-work img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:calc(var(--radius-standard) - 2px); background:var(--surface-subtle); }
.activities-work h3, .activities-work p { min-width:0; margin:0; color:var(--text-primary); overflow-wrap:anywhere; }
.activities-work-rank { font-weight:700; }
.activities-work-medal { display:inline-block; margin-inline-start:.2rem; font-size:1.15em; line-height:1; vertical-align:-.08em; }
.activities-work .activities-work-meta { color:var(--text-muted); }
.activities-work-stats { display:grid; gap:.4rem; margin:0; }
.activities-work-stat { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:baseline; padding:.45rem .65rem; border:1px solid var(--surface-border); border-radius:calc(var(--radius-standard) - 4px); background:var(--surface-subtle); }
.activities-work-stat dt { min-width:0; color:var(--text-muted); font-weight:600; overflow-wrap:anywhere; }
.activities-work-stat dd { min-width:0; margin:0; color:var(--text-primary); font-size:1.05rem; font-variant-numeric:tabular-nums; font-weight:700; overflow-wrap:anywhere; text-align:right; }
.activities-work > .btn { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.activities-work-details { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text-muted); font:inherit; }
.activities-full-image-dialog { width:min(96vw,1100px); max-height:96vh; padding:1rem; border:1px solid var(--surface-border); border-radius:var(--radius-standard); color:var(--text-primary); background:var(--surface-bg); }
.activities-full-image-dialog::backdrop { background:rgb(0 0 0 / .72); }
.activities-full-image-dialog img { display:block; max-width:100%; max-height:82vh; margin:.75rem auto 0; object-fit:contain; }
#activities-submit-dialog { width:min(36rem,calc(100% - 2rem)); border:1px solid var(--surface-border); border-radius:var(--radius-standard); color:var(--text-primary); background:var(--surface-bg); }
#activities-submit-form { display:grid; gap:.65rem; }
#activities-category-input { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.activities-dialog-actions { display:flex; gap:.75rem; justify-content:flex-end; }
.activities-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.activities-section-heading h2, .activities-section-heading p { margin:0; }
.activities-section-heading p { margin-top:.45rem; color:var(--text-muted); }
.activities-archives { display:grid; gap:1rem; }
.activities-works-section + .activities-archives { margin-top:clamp(2.5rem,6vw,4rem); padding-top:clamp(2rem,5vw,3rem); border-top:2px solid var(--surface-border); }
.activities-archive-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.75rem; padding:0; margin:0; list-style:none; }
.activities-archive-list a { display:flex; justify-content:space-between; gap:1rem; padding:1rem; color:var(--text-primary); background:var(--surface-bg); border:1px solid var(--surface-border); border-radius:var(--radius-standard); text-decoration:none; }
.activities-archive-list a:hover, .activities-archive-list a:focus-visible, .activities-archive-list .is-current a { border-color:var(--brand-accent); background:var(--brand-accent-soft); }
.activities-archive-list a span:last-child { color:var(--text-muted); font-size:.9rem; }
.activities-read-only-label { color:var(--text-muted); }

/* Retains a visible keyboard focus treatment for future page actions. */
.activities-page :focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 3px;
}

html[data-theme="light"] .activities-page {
    color: var(--text-primary);
}

@media (min-width: 1200px) {
    .activities-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .activities-page {
        padding-top: 1rem;
    }

    .activities-planned-grid {
        grid-template-columns: 1fr;
    }

    .activities-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .activities-category + .activities-category {
        margin-top: 0;
        padding-top: 1rem;
    }

    .activities-works-section + .activities-archives {
        margin-top: 1.75rem;
        padding-top: 1.75rem;
    }

    .activities-hub-card { grid-template-columns:1fr; gap:0; }
    .activities-hub-thumbnail { order:-1; min-height:0; aspect-ratio:16 / 9; }

    .activities-empty-heading {
        display: grid;
    }
}
