.oj-submission-detail-row > td {
  background: var(--oj-panel-muted);
}

.oj-recent-submissions-user-col {
  min-width: 110px;
  width: 110px;
}

.oj-submission-search {
  align-items: end;
  display: flex;
  gap: 1rem;
}

.oj-submission-search-field {
  flex: 1;
  min-width: 0;
}

.oj-submission-search-actions,
.oj-submission-row-actions {
  align-items: center;
  display: flex;
  gap: 1rem;
}

.oj-submission-row-actions > .oj-inline-toggle {
  align-items: center;
  display: inline-flex;
  font-size: 14px;
  margin-left: 0;
  min-height: 44px;
  min-width: 44px;
}

.oj-submission-search-loading {
  visibility: hidden;
}

[data-submission-results][aria-busy="true"] .oj-submission-search-loading {
  visibility: visible;
}

.oj-submission-submitted-actions {
  align-items: center;
  display: inline-flex;
  flex-direction: column;
  white-space: nowrap;
}

.oj-submission-inline-detail {
  background: var(--oj-panel-muted);
  border-left: 2px solid var(--oj-primary);
}

.oj-code-pre,
.oj-pre {
  border-radius: var(--oj-radius);
}

.oj-code-pre {
  background: var(--oj-code-bg);
  color: var(--oj-code-text);
  overflow-x: auto;
  white-space: pre;
}

/* When highlight.js takes over, its theme owns the code background. */
.oj-code-pre:has(> code) {
  background: transparent;
  overflow: hidden;
  padding: 0;
}

.oj-code-pre > code {
  border-radius: inherit;
  display: block;
  overflow-x: auto;
  padding: 15px;
}

.oj-inline-toggle {
  color: var(--oj-link);
  font-weight: 600;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.oj-submission-metric-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.oj-status-guide {
  margin: 0 auto;
  max-width: 920px;
}

.oj-editorial-heading {
  padding: 20px 0 26px;
}

.oj-editorial-heading h1 {
  font-size: clamp(30px, 4.5vw, 44px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: 14px;
}

.oj-editorial-heading p {
  color: var(--oj-muted);
  font-size: 16px;
  line-height: 1.75;
  margin: 0;
  max-width: 700px;
}

.oj-status-index {
  backdrop-filter: blur(8px);
  background: var(--oj-navbar-bg);
  border-bottom: 1px solid var(--oj-border);
  display: flex;
  flex-wrap: wrap;
  gap: 2px 24px;
  /* 水平 bleed 不可超過 .container 的 12px padding，否則窄視窗會出現水平捲動 */
  margin-inline: -12px;
  padding: 10px 12px;
  position: sticky;
  top: 64px;
  z-index: 10;
}

.oj-status-index a {
  align-items: center;
  color: var(--oj-heading);
  display: inline-flex;
  font-family: var(--oj-font-mono);
  font-size: 13px;
  font-weight: 600;
  min-height: 44px;
  text-decoration-color: transparent;
}

.oj-status-index a:hover,
.oj-status-index a:focus {
  text-decoration-color: currentColor;
}

.oj-status-guide-group {
  display: grid;
  gap: 32px;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 0.65fr);
  padding: 38px 0;
}

.oj-status-guide-group + .oj-status-guide-group {
  border-top: 1px solid var(--oj-border);
}

.oj-status-guide-group > header h2 {
  font-size: 21px;
  font-weight: 600;
}

.oj-status-guide-group > header p {
  color: var(--oj-muted);
  font-size: 13px;
  line-height: 1.65;
}

.oj-status-guide-item {
  display: grid;
  gap: 26px;
  grid-template-columns: 88px minmax(0, 1fr);
  padding: 4px 0 28px;
  scroll-margin-top: 140px;
}

.oj-status-guide-item + .oj-status-guide-item {
  border-top: 1px solid var(--oj-border-faint);
  padding-top: 28px;
}

.oj-status-guide-code {
  color: var(--oj-heading);
  font-family: var(--oj-font-mono);
  font-size: 16px;
  font-weight: 700;
}

.oj-status-guide-copy h3 {
  font-size: 19px;
  font-weight: 600;
  margin-bottom: 8px;
}

.oj-status-guide-copy h4 {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin: 20px 0 8px;
  text-transform: uppercase;
}

.oj-status-guide-copy p,
.oj-status-guide-copy li {
  color: var(--oj-muted);
  line-height: 1.72;
}

.oj-status-guide-copy ul {
  margin-bottom: 0;
  padding-left: 20px;
}

@media (min-width: 1600px) {
  .oj-submissions-layout .oj-table-scroll-lg {
    max-height: min(800px, calc(100vh - 180px));
  }

  .oj-recent-submissions-user-col {
    min-width: 180px;
    width: 180px;
  }
}

@media (max-width: 767.98px) {
  .oj-submission-search {
    align-items: stretch;
    flex-direction: column;
  }

  .oj-submission-search-actions > .btn {
    flex: 1;
    min-height: 44px;
  }

  .oj-submission-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oj-submission-metric-strip .oj-metric:last-child {
    grid-column: 1 / -1;
  }

  .oj-editorial-heading {
    padding: 12px 0 18px;
  }

  /* 手機改單行橫滑，避免 sticky 索引列疊多排吃掉版面 */
  .oj-status-index {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .oj-status-index a {
    flex: 0 0 auto;
  }

  .oj-status-guide-group {
    gap: 24px;
    grid-template-columns: 1fr;
    padding: 30px 0;
  }

  .oj-status-guide-item {
    gap: 12px;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1199.98px) {
  .oj-frontend .oj-submissions-layout:has(.oj-submission-table) .oj-table-scroll { max-height: none; }
  .oj-frontend .oj-submission-table { display: block; min-width: 0; }
  .oj-frontend .oj-submission-table thead { display: none; }
  .oj-frontend .oj-submission-table tbody { display: block; }
  .oj-frontend .oj-submission-table tbody tr {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px; padding: 20px 16px; border-bottom: 1px solid var(--oj-border);
  }
  .oj-frontend .oj-submission-table td {
    display: block; width: auto; min-width: 0; padding: 0; border: 0;
    text-align: left; overflow-wrap: anywhere; order: 3;
  }
  .oj-frontend .oj-submission-table td[data-label]::before {
    display: block; content: attr(data-label); color: var(--oj-muted);
    font-size: 11px; line-height: 1.5; margin-bottom: 3px;
  }
  .oj-frontend .oj-submission-table td[data-label="題目"] { grid-column: 1 / -1; order: 0; font-size: 17px; }
  .oj-frontend .oj-submission-table td[data-label="題目"]::before { display: none; }
  .oj-frontend .oj-submission-table td[data-label="狀態"] { order: 1; }
  .oj-frontend .oj-submission-table td:is([data-label="使用者"], [data-label="編號"]) { order: 2; }
  .oj-frontend .oj-submission-table td[data-label="提交時間"] { grid-column: 1 / -1; order: 4; }
  .oj-frontend .oj-submission-table .oj-submission-submitted-actions { align-items: flex-start; }
  .oj-frontend .oj-submission-table .oj-line-clamp-2 { display: block !important; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
  .oj-frontend .oj-submission-table .oj-status-code { justify-content: flex-start; }
  .oj-frontend .oj-submission-table tr.oj-submission-detail-row { display: block; border: 0; padding: 0; }
  .oj-frontend .oj-submission-table td[colspan] { grid-column: 1 / -1; }
  .oj-frontend .oj-submission-table .oj-inline-toggle { min-height: 44px; }
}
@media (max-width: 767.98px) {
  .oj-frontend .oj-ranking-table tbody tr { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; padding: 16px; }
  .oj-frontend .oj-ranking-table td { display: block; padding: 0; width: auto; min-width: 0; overflow-wrap: anywhere; order: 4; }
  .oj-frontend .oj-ranking-table td[data-label]::before { display: block; margin-bottom: 2px; }
  .oj-frontend .oj-ranking-table td[data-label="名次"] { grid-row: 1 / 3; grid-column: 1; order: 0; }
  .oj-frontend .oj-ranking-table td[data-label="使用者"] { grid-column: 2; order: 1; }
  .oj-frontend .oj-ranking-table td[data-label="完成題數"] { grid-column: 2; order: 2; }
  .oj-frontend .oj-ranking-table td[data-label="學校"] { grid-column: 1 / -1; order: 3; }
  .oj-frontend .oj-ranking-table td:is([data-label="名次"], [data-label="使用者"])::before { display: none; }
  .oj-frontend .oj-ranking-table td[colspan] { grid-column: 1 / -1; }
  .oj-frontend .oj-ranking-table .oj-line-clamp-2 { display: block !important; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
  .oj-frontend .oj-status-index { scrollbar-width: thin; }
}
