/* ============================================================
 * OJ 在线评测模块样式（前缀 oj-，复用 so-* 体系的设计语言）
 * 主色 #2f6fe0 / 卡片 #fff / 边框 #e6eaf2 / 圆角 12px
 * ============================================================ */

/* ---------- 筛选栏 ---------- */
.oj-filter {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.oj-filter .so-input { flex: 1 1 180px; min-width: 140px; }

/* 全局 ACE 主题把 select 固定为 height:30px，
   与 so-input 的 9px 垂直内边距叠加后文字被裁切，这里整体覆盖回来 */
.oj-select,
.oj-page-size .oj-select {
    flex: 0 1 130px !important;
    width: auto;
    height: 38px;
    line-height: normal;
    padding: 0 12px !important;
    border-radius: 8px !important;
    color: #2f3440;
}

/* ---------- 题目表格 ---------- */
.oj-table-wrap { overflow-x: auto; }
.oj-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.oj-table th, .oj-table td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #eef1f7;
    white-space: nowrap;
}
.oj-table th { color: #8a94a6; font-weight: 600; font-size: 12px; }
.oj-table tbody tr:hover { background: #f7f9fd; }
.oj-table tbody tr:last-child td { border-bottom: none; }
.oj-col-status { width: 90px; }
.oj-col-diff { width: 80px; }
.oj-col-cat { width: 110px; }
.oj-col-num { width: 90px; }
.oj-col-time { width: 100px; color: #8a94a6; }
.oj-code { font-family: Menlo, Consolas, monospace; color: #2f6fe0; font-weight: 600; }
.oj-title { color: #2f3440; }
.oj-title:hover { color: #2f6fe0; text-decoration: none; }

.oj-empty { padding: 36px 0; text-align: center; color: #8a94a6; }

/* 难度标签 */
.oj-diff {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 10px;
    font-size: 12px;
    color: #fff;
}
.oj-diff.d1 { background: #43b581; }
.oj-diff.d2 { background: #2f9ee0; }
.oj-diff.d3 { background: #e6a23c; }
.oj-diff.d4 { background: #f5493d; }

/* 我的状态点 */
.oj-status-dot {
    display: inline-block;
    width: 9px; height: 9px;
    border-radius: 50%;
    margin-right: 6px;
    vertical-align: 1px;
}
.oj-status-dot.ac { background: #43b581; }
.oj-status-dot.tried { background: #e6a23c; }

/* ---------- 评测状态徽标 ---------- */
.oj-status {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    background: #9aa5b5;
}
.oj-status.st-ac { background: #43b581; }
.oj-status.st-wa { background: #f5493d; }
.oj-status.st-ce { background: #8a6ff0; }
.oj-status.st-re { background: #e6703c; }
.oj-status.st-tle { background: #e6a23c; }
.oj-status.st-mle { background: #e6a23c; }
.oj-status.st-ole { background: #e6a23c; }
.oj-status.st-pending,
.oj-status.st-judging { background: #2f9ee0; }
.oj-status.st-skipped { background: #c3cbd8; color: #fff; }
.oj-tag.ac {
    background: #e2f6ec;
    color: #2c9c68;
    padding: 2px 9px;
    border-radius: 10px;
    font-size: 12px;
}

/* ---------- 题目详情分栏 ---------- */
.oj-problem-wrap { max-width: 1400px; }
.oj-split {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.oj-left { flex: 1 1 460px; min-width: 0; }
.oj-right {
    flex: 1 1 520px;
    min-width: 0;
    position: sticky;
    top: 70px;
}
.oj-p-title { font-size: 20px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.oj-md h3 { font-size: 14px; margin: 14px 0 6px; color: #2f3440; }
.oj-md p { font-size: 14px; line-height: 1.7; margin: 0 0 6px; word-break: break-word; }
.oj-md .oj-bg {
    background: #f7f9fd;
    border-left: 3px solid #2f6fe0;
    padding: 8px 12px;
    border-radius: 0 8px 8px 0;
    color: #5b667a;
}
.oj-samples { display: flex; gap: 14px; flex-wrap: wrap; }
.oj-sample { flex: 1 1 200px; min-width: 180px; }
.oj-sample h4, .oj-io-col h4 {
    font-size: 12px;
    color: #8a94a6;
    margin: 0 0 6px;
    font-weight: 600;
}
.oj-pre {
    background: #f4f6fa;
    border: 1px solid #e6eaf2;
    border-radius: 8px;
    padding: 10px 12px;
    font-family: Menlo, Consolas, 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.55;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0;
    color: #2f3440;
}
.oj-pre.oj-err { color: #c0392b; background: #fdf3f2; border-color: #f3cfcb; }
.oj-pre.oj-code-view { max-height: 480px; overflow: auto; }
.oj-note { font-size: 12px; color: #8a94a6; margin-top: 8px; width: 100%; }
.oj-sec-h { font-size: 14px; margin: 16px 0 8px; }

.oj-copy-btn { font-size: 12px; }

/* ---------- 编辑器 ---------- */
.oj-editor-card .so-card-bd { padding: 12px 14px 14px; }
#ojEditor {
    height: 420px;
    border: 1px solid #e6eaf2;
    border-radius: 8px;
    overflow: hidden;
}
.oj-editor-ops {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.oj-tool { font-size: 12px; padding: 4px 10px; }
.so-btn.so-btn-ac {
    background: #43b581;
    border-color: #43b581;
    color: #fff;
}
.so-btn.so-btn-ac:hover { background: #3aa173; border-color: #3aa173; }

/* 全屏编辑 */
.oj-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999;
    margin: 0 !important;
    background: #fff;
    padding: 10px;
}
.oj-fullscreen #ojEditor { height: calc(100vh - 140px) !important; }

/* 运行结果 */
.oj-run-io { margin-top: 12px; }
.oj-io-input { width: 100%; resize: vertical; }
.oj-result { margin-top: 12px; }
.oj-result-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.oj-result h4 { margin: 0; font-size: 13px; color: #8a94a6; }
.oj-io-grid {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.oj-io-grid .oj-sample { flex: 1 1 220px; }

/* ---------- 统计页 ---------- */
.oj-stat-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.oj-stat {
    flex: 1 1 120px;
    background: #f7f9fd;
    border: 1px solid #eef1f7;
    border-radius: 10px;
    padding: 14px 16px;
    text-align: center;
}
.oj-stat em {
    display: block;
    font-style: normal;
    font-size: 22px;
    font-weight: 700;
    color: #2f6fe0;
}
.oj-stat span { font-size: 12px; color: #8a94a6; }
.oj-cat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 2px;
    border-bottom: 1px dashed #eef1f7;
    font-size: 13px;
}
.oj-cat-row:last-child { border-bottom: none; }

/* ---------- 登录提示 ---------- */
.oj-login-tip {
    padding: 40px 20px;
    text-align: center;
    color: #8a94a6;
}

/* ---------- 移动端 ---------- */
@media (max-width: 900px) {
    .oj-split { flex-direction: column; }
    .oj-right {
        position: static;
        width: 100%;
        order: -1;      /* 手机上编辑器放题目描述前面，先写代码再看题也方便 */
    }
    #ojEditor { height: 340px; }
    .oj-col-time { display: none; }
}

/* ---------- 代码不本地保存的提示 ---------- */
.oj-draft-note {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.7;
    color: #8a94a6;
}
.oj-draft-note strong { color: #d9534f; font-weight: 600; }
