:root { --bg: #f4f7fb; --panel: #ffffff; --line: #d9e0ea; --text: #10233c; --muted: #5f738d; --primary: #1f6feb; --primary-strong: #0f4cb5; --danger: #c0392b; --ok: #1f8f4a; } * { box-sizing: border-box; } body { margin: 0; font-family: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif; color: var(--text); background: radial-gradient(circle at top right, #e6eefc, #f4f7fb 45%, #eef3fb); } .container { max-width: 1560px; margin: 0 auto; padding: 24px 20px 48px; } .page-head h1 { margin: 0; font-size: 26px; } .page-head p { margin: 8px 0 0; color: var(--muted); } .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; margin-top: 16px; padding: 16px; box-shadow: 0 8px 24px rgba(16, 35, 60, 0.06); } .panel h2, .panel h3, .panel h4 { margin-top: 0; } .grid-3 { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 12px; } .row { display: grid; gap: 12px; } .row-2 { grid-template-columns: repeat(2, minmax(280px, 1fr)); } .row-3 { grid-template-columns: repeat(3, minmax(240px, 1fr)); } .subpanel { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: linear-gradient(180deg, #fff, #fbfdff); } .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; font-size: 13px; } .field input, .field textarea, .field select { width: 100%; border: 1px solid #c9d4e1; border-radius: 6px; padding: 8px; font-size: 14px; background: #fff; } .field.readonly { justify-content: center; } .field.checkbox { flex-direction: row; align-items: center; gap: 8px; } .field.checkbox input { width: auto; } .small { font-size: 12px; } .tip, .muted { color: var(--muted); } .actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .inline-end { justify-content: flex-end; } .inline-start { justify-content: flex-start; align-items: flex-end; } .select-actions { margin: 8px 0 10px; } .align-end { align-items: end; } .subpanel.compact { padding: 10px 12px; } .subpanel.compact h4 { margin: 0 0 8px; } #exclude_effect_tip { font-size: 13px; line-height: 1.45; } .btn { border: 1px solid transparent; border-radius: 8px; padding: 9px 13px; cursor: pointer; font-size: 14px; transition: all .15s ease; } .btn.primary { background: var(--primary); color: #fff; } .btn.primary:hover { background: var(--primary-strong); } .btn.secondary { background: #eef3fc; border-color: #cad7ec; color: #173b72; } .btn.secondary:hover { background: #e4ecfb; } .btn.danger { background: #fbe9e7; border-color: #f1c6c1; color: var(--danger); } .btn.small { padding: 6px 10px; font-size: 13px; } .btn:disabled { opacity: .45; cursor: not-allowed; } .table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; } .tuning-wrap { max-height: 460px; } .simple-table { width: 100%; border-collapse: collapse; min-width: 760px; } .simple-table th, .simple-table td { border-bottom: 1px solid #e8edf4; border-right: 1px solid #edf1f7; padding: 7px 8px; font-size: 13px; vertical-align: top; } .simple-table th { background: #f7faff; position: sticky; top: 0; z-index: 1; text-align: left; } .simple-table td input[type="number"], .simple-table td input[type="text"] { width: 100%; border: 1px solid #cfd9e6; border-radius: 5px; padding: 6px; } .simple-table td input[type="checkbox"] { transform: scale(1.05); } #tuning_table th:first-child, #tuning_table td:first-child { text-align: center; min-width: 74px; } .metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin: 10px 0; } .metric { border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: #fbfdff; } .metric .k { font-size: 12px; color: var(--muted); } .metric .v { margin-top: 3px; font-size: 20px; font-weight: 700; } .progress-wrap { width: 100%; height: 12px; border: 1px solid #d3dceb; border-radius: 999px; overflow: hidden; background: #edf3ff; margin: 8px 0 6px; } #job_progress_bar { height: 100%; width: 0; background: linear-gradient(90deg, #1f6feb, #5b9bff); } .tab-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; } .tab-btn { border: 1px solid #c9d6ea; border-radius: 999px; padding: 6px 10px; background: #f3f7ff; color: #164488; cursor: pointer; } .tab-btn.active { background: #1f6feb; color: #fff; border-color: #1f6feb; } .code-block { white-space: pre-wrap; word-break: break-word; margin: 8px 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #f6f8fb; font-family: "SFMono-Regular", "Consolas", monospace; font-size: 12px; } .message { position: fixed; right: 14px; bottom: 14px; z-index: 1000; max-width: 440px; padding: 12px 14px; border-radius: 8px; color: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); } .message.info { background: #3f6db5; } .message.ok { background: var(--ok); } .message.warn { background: #cc8b21; } .message.err { background: var(--danger); } .hidden { display: none !important; } @media (max-width: 1100px) { .grid-3, .row-3, .row-2 { grid-template-columns: 1fr; } .actions.inline-end { justify-content: flex-start; } }