┌─ SCSS ─────────────────────────────────────────────────────────────────────┐
│ @use "./tokens" as *; │
│ │
│ .best-runs-container { │
│ width: 100%; │
│ } │
│ │
│ .profile-section { │
│ background-color: var(--bg-secondary); │
│ border-radius: $radius-lg; │
│ padding: $spacing-2xl; │
│ margin-bottom: $spacing-2xl; │
│ border: 1px solid var(--border-color); │
│ } │
│ │
│ .section-title { │
│ color: var(--highlight-color); │
│ margin: 0 0 $spacing-xl; │
│ font-size: $font-size-2xl; │
│ font-weight: 600; │
│ } │
│ │
│ .best-runs-table { │
│ border-radius: $radius-md; │
│ overflow: hidden; │
│ border: 1px solid var(--border-color); │
│ background-color: rgba(0, 0, 0, 0.2); │
│ } │
│ │
│ .best-runs-header { │
│ display: grid; │
│ gap: $spacing-lg; │
│ padding: $spacing-lg $spacing-xl; │
│ background-color: rgba(255, 255, 255, 0.05); │
│ border-bottom: 1px solid var(--border-color); │
│ font-weight: 600; │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ letter-spacing: 0.5px; │
│ } │
│ │
│ .best-runs-body { │
│ background-color: rgba(0, 0, 0, 0.2); │
│ } │
│ │
│ .header-cell { │
│ display: flex; │
│ align-items: center; │
│ │
│ &--time, │
│ &--rank, │
│ &--realm, │
│ &--last, │
│ &--period { │
│ justify-content: center; │
│ } │
│ } │
│ │
│ .best-runs-row { │
│ display: grid; │
│ gap: $spacing-lg; │
│ align-items: center; │
│ padding: $spacing-lg $spacing-xl; │
│ border-bottom: 1px solid #3a3a3a; │
│ min-height: 60px; │
│ transition: background-color 0.2s ease; │
│ } │
│ │
│ .best-runs-row:hover { │
│ background-color: var(--bg-hover); │
│ } │
│ │
│ .best-runs-row:last-child { │
│ border-bottom: none; │
│ } │
│ │
│ .runs-cell { │
│ &--dungeon { │
│ color: var(--text-primary); │
│ font-weight: 600; │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ &--time { │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ color: var(--text-primary); │
│ text-align: center; │
│ font-variant-numeric: tabular-nums; │
│ } │
│ │
│ &--rank { │
│ font-size: $font-size-lg; │
│ font-weight: 700; │
│ color: var(--highlight-color); │
│ text-align: center; │
│ } │
│ │
│ &--team { │
│ width: 100%; │
│ } │
│ │
│ &--realm, │
│ &--last, │
│ &--period { │
│ color: var(--text-secondary); │
│ font-size: $font-size-base; │
│ text-align: center; │
│ } │
│ } │
│ │
│ .rank-link { │
│ color: inherit; │
│ text-decoration: none; │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ │
│ &:hover { │
│ text-decoration: underline; │
│ } │
│ } │
│ │
│ .dungeon-icon { │
│ width: 20px; │
│ height: 20px; │
│ border-radius: 3px; │
│ border: 1px solid #444; │
│ object-fit: cover; │
│ flex-shrink: 0; │
│ } │
│ │
│ .dungeon-name { │
│ font-weight: 600; │
│ } │
│ │
│ .team-composition { │
│ display: flex; │
│ flex-wrap: wrap; │
│ gap: $spacing-sm; │
│ align-items: center; │
│ } │
│ │
│ .team-member { │
│ display: inline-flex; │
│ align-items: center; │
│ gap: 4px; │
│ } │
│ │
│ .spec-icon, │
│ .spec-icon-placeholder { │
│ width: 16px; │
│ height: 16px; │
│ border-radius: 2px; │
│ flex-shrink: 0; │
│ border: 1px solid #444; │
│ background-color: rgba(255, 255, 255, 0.1); │
│ } │
│ │
│ .member-link { │
│ font-weight: 600; │
│ font-size: $font-size-base; │
│ text-decoration: none; │
│ color: var(--text-primary); │
│ │
│ &:hover { │
│ text-decoration: underline; │
│ } │
│ } │
│ │
│ .text-subtle { │
│ color: var(--text-muted); │
│ font-size: $font-size-sm; │
│ } │
│ │
│ .no-runs-message { │
│ text-align: center; │
│ padding: 40px 20px; │
│ color: var(--text-muted); │
│ background-color: var(--bg-secondary); │
│ border-radius: $radius-md; │
│ border: 1px solid var(--border-color); │
│ │
│ p { │
│ margin: 0; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="full"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 110px 110px 110px; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="compact"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 130px; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="status"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 140px 160px 110px; │
│ } │
│ } │
│ │
│ .mobile-card-header, │
│ .mobile-card-body, │
│ .mobile-team, │
│ .mobile-rankings, │
│ .mobile-meta, │
│ .mobile-team-composition, │
│ .mobile-team-member, │
│ .mobile-meta-item { │
│ display: none; │
│ } │
│ │
│ @media (max-width: 768px) { │
│ .best-runs-header { │
│ display: none; │
│ } │
│ │
│ .best-runs-table { │
│ border: none; │
│ background: none; │
│ } │
│ │
│ .best-runs-row { │
│ grid-template-columns: 1fr; │
│ gap: $spacing-md; │
│ padding: $spacing-md; │
│ border: 1px solid var(--border-color); │
│ border-radius: $radius-md; │
│ margin-bottom: $spacing-md; │
│ background-color: var(--bg-secondary); │
│ } │
│ │
│ .best-runs-row .runs-cell { │
│ display: none; │
│ } │
│ │
│ .mobile-card-header, │
│ .mobile-card-body, │
│ .mobile-team, │
│ .mobile-rankings, │
│ .mobile-meta, │
│ .mobile-team-composition, │
│ .mobile-team-member, │
│ .mobile-meta-item { │
│ display: block; │
│ } │
│ │
│ .mobile-card-header { │
│ display: flex; │
│ justify-content: space-between; │
│ align-items: center; │
│ gap: $spacing-md; │
│ } │
│ │
│ .mobile-card-body { │
│ display: flex; │
│ flex-direction: column; │
│ gap: $spacing-md; │
│ } │
│ │
│ .mobile-dungeon-info { │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-time { │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ color: var(--text-primary); │
│ } │
│ │
│ .mobile-rankings { │
│ display: grid; │
│ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-rank-item { │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-sm; │
│ padding: $spacing-sm $spacing-md; │
│ } │
│ │
│ .mobile-rank-label { │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ } │
│ │
│ .mobile-rank-value { │
│ font-weight: 600; │
│ color: var(--highlight-color); │
│ } │
│ │
│ .mobile-team { │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-md; │
│ padding: $spacing-md; │
│ } │
│ │
│ .mobile-team-label { │
│ text-transform: uppercase; │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ margin-bottom: $spacing-sm; │
│ } │
│ │
│ .mobile-team-composition { │
│ display: flex; │
│ flex-direction: column; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-team-member { │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-meta { │
│ display: grid; │
│ gap: $spacing-sm; │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-md; │
│ padding: $spacing-md; │
│ } │
│ │
│ .mobile-meta-label { │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ } │
│ │
│ .mobile-meta-value { │
│ font-weight: 600; │
│ color: var(--text-primary); │
│ } │
│ │
│ .mobile-meta-item { │
│ display: flex; │
│ justify-content: space-between; │
│ gap: $spacing-sm; │
│ } │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ SCSS ───────────────────────────────┐
│ @use "./tokens" as *; │
│ │
│ .best-runs-container { │
│ width: 100%; │
│ } │
│ │
│ .profile-section { │
│ background-color: var(--bg-secondary); │
│ border-radius: $radius-lg; │
│ padding: $spacing-2xl; │
│ margin-bottom: $spacing-2xl; │
│ border: 1px solid var(--border-color); │
│ } │
│ │
│ .section-title { │
│ color: var(--highlight-color); │
│ margin: 0 0 $spacing-xl; │
│ font-size: $font-size-2xl; │
│ font-weight: 600; │
│ } │
│ │
│ .best-runs-table { │
│ border-radius: $radius-md; │
│ overflow: hidden; │
│ border: 1px solid var(--border-color); │
│ background-color: rgba(0, 0, 0, 0.2); │
│ } │
│ │
│ .best-runs-header { │
│ display: grid; │
│ gap: $spacing-lg; │
│ padding: $spacing-lg $spacing-xl; │
│ background-color: rgba(255, 255, 255, 0.05 │
│ ); │
│ border-bottom: 1px solid var(--border-colo │
│ r); │
│ font-weight: 600; │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ letter-spacing: 0.5px; │
│ } │
│ │
│ .best-runs-body { │
│ background-color: rgba(0, 0, 0, 0.2); │
│ } │
│ │
│ .header-cell { │
│ display: flex; │
│ align-items: center; │
│ │
│ &--time, │
│ &--rank, │
│ &--realm, │
│ &--last, │
│ &--period { │
│ justify-content: center; │
│ } │
│ } │
│ │
│ .best-runs-row { │
│ display: grid; │
│ gap: $spacing-lg; │
│ align-items: center; │
│ padding: $spacing-lg $spacing-xl; │
│ border-bottom: 1px solid #3a3a3a; │
│ min-height: 60px; │
│ transition: background-color 0.2s ease; │
│ } │
│ │
│ .best-runs-row:hover { │
│ background-color: var(--bg-hover); │
│ } │
│ │
│ .best-runs-row:last-child { │
│ border-bottom: none; │
│ } │
│ │
│ .runs-cell { │
│ &--dungeon { │
│ color: var(--text-primary); │
│ font-weight: 600; │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ &--time { │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ color: var(--text-primary); │
│ text-align: center; │
│ font-variant-numeric: tabular-nums; │
│ } │
│ │
│ &--rank { │
│ font-size: $font-size-lg; │
│ font-weight: 700; │
│ color: var(--highlight-color); │
│ text-align: center; │
│ } │
│ │
│ &--team { │
│ width: 100%; │
│ } │
│ │
│ &--realm, │
│ &--last, │
│ &--period { │
│ color: var(--text-secondary); │
│ font-size: $font-size-base; │
│ text-align: center; │
│ } │
│ } │
│ │
│ .rank-link { │
│ color: inherit; │
│ text-decoration: none; │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ │
│ &:hover { │
│ text-decoration: underline; │
│ } │
│ } │
│ │
│ .dungeon-icon { │
│ width: 20px; │
│ height: 20px; │
│ border-radius: 3px; │
│ border: 1px solid #444; │
│ object-fit: cover; │
│ flex-shrink: 0; │
│ } │
│ │
│ .dungeon-name { │
│ font-weight: 600; │
│ } │
│ │
│ .team-composition { │
│ display: flex; │
│ flex-wrap: wrap; │
│ gap: $spacing-sm; │
│ align-items: center; │
│ } │
│ │
│ .team-member { │
│ display: inline-flex; │
│ align-items: center; │
│ gap: 4px; │
│ } │
│ │
│ .spec-icon, │
│ .spec-icon-placeholder { │
│ width: 16px; │
│ height: 16px; │
│ border-radius: 2px; │
│ flex-shrink: 0; │
│ border: 1px solid #444; │
│ background-color: rgba(255, 255, 255, 0.1) │
│ ; │
│ } │
│ │
│ .member-link { │
│ font-weight: 600; │
│ font-size: $font-size-base; │
│ text-decoration: none; │
│ color: var(--text-primary); │
│ │
│ &:hover { │
│ text-decoration: underline; │
│ } │
│ } │
│ │
│ .text-subtle { │
│ color: var(--text-muted); │
│ font-size: $font-size-sm; │
│ } │
│ │
│ .no-runs-message { │
│ text-align: center; │
│ padding: 40px 20px; │
│ color: var(--text-muted); │
│ background-color: var(--bg-secondary); │
│ border-radius: $radius-md; │
│ border: 1px solid var(--border-color); │
│ │
│ p { │
│ margin: 0; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="full"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 1 │
│ 10px 110px 110px; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="compact"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 1 │
│ 30px; │
│ } │
│ } │
│ │
│ .best-runs-table[data-mode="status"] { │
│ .best-runs-header, │
│ .best-runs-row { │
│ grid-template-columns: 220px 120px 2fr 1 │
│ 40px 160px 110px; │
│ } │
│ } │
│ │
│ .mobile-card-header, │
│ .mobile-card-body, │
│ .mobile-team, │
│ .mobile-rankings, │
│ .mobile-meta, │
│ .mobile-team-composition, │
│ .mobile-team-member, │
│ .mobile-meta-item { │
│ display: none; │
│ } │
│ │
│ @media (max-width: 768px) { │
│ .best-runs-header { │
│ display: none; │
│ } │
│ │
│ .best-runs-table { │
│ border: none; │
│ background: none; │
│ } │
│ │
│ .best-runs-row { │
│ grid-template-columns: 1fr; │
│ gap: $spacing-md; │
│ padding: $spacing-md; │
│ border: 1px solid var(--border-color); │
│ border-radius: $radius-md; │
│ margin-bottom: $spacing-md; │
│ background-color: var(--bg-secondary); │
│ } │
│ │
│ .best-runs-row .runs-cell { │
│ display: none; │
│ } │
│ │
│ .mobile-card-header, │
│ .mobile-card-body, │
│ .mobile-team, │
│ .mobile-rankings, │
│ .mobile-meta, │
│ .mobile-team-composition, │
│ .mobile-team-member, │
│ .mobile-meta-item { │
│ display: block; │
│ } │
│ │
│ .mobile-card-header { │
│ display: flex; │
│ justify-content: space-between; │
│ align-items: center; │
│ gap: $spacing-md; │
│ } │
│ │
│ .mobile-card-body { │
│ display: flex; │
│ flex-direction: column; │
│ gap: $spacing-md; │
│ } │
│ │
│ .mobile-dungeon-info { │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-time { │
│ font-family: "Courier New", monospace; │
│ font-weight: 700; │
│ color: var(--text-primary); │
│ } │
│ │
│ .mobile-rankings { │
│ display: grid; │
│ grid-template-columns: repeat(auto-fit, │
│ minmax(120px, 1fr)); │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-rank-item { │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-sm; │
│ padding: $spacing-sm $spacing-md; │
│ } │
│ │
│ .mobile-rank-label { │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ } │
│ │
│ .mobile-rank-value { │
│ font-weight: 600; │
│ color: var(--highlight-color); │
│ } │
│ │
│ .mobile-team { │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-md; │
│ padding: $spacing-md; │
│ } │
│ │
│ .mobile-team-label { │
│ text-transform: uppercase; │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ margin-bottom: $spacing-sm; │
│ } │
│ │
│ .mobile-team-composition { │
│ display: flex; │
│ flex-direction: column; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-team-member { │
│ display: flex; │
│ align-items: center; │
│ gap: $spacing-sm; │
│ } │
│ │
│ .mobile-meta { │
│ display: grid; │
│ gap: $spacing-sm; │
│ background-color: var(--bg-primary); │
│ border-radius: $radius-md; │
│ padding: $spacing-md; │
│ } │
│ │
│ .mobile-meta-label { │
│ color: var(--text-secondary); │
│ font-size: $font-size-sm; │
│ text-transform: uppercase; │
│ } │
│ │
│ .mobile-meta-value { │
│ font-weight: 600; │
│ color: var(--text-primary); │
│ } │
│ │
│ .mobile-meta-item { │
│ display: flex; │
│ justify-content: space-between; │
│ gap: $spacing-sm; │
│ } │
│ } │
└──────────────────────────────────────────────┘