:root { --primary: #1e2a3a; --primary-light: #2c3e50; --accent: #2d8cff; --accent-hover: #1a75d9; --bg: #f6f7fb; --surface: #ffffff; --border: #e5e7eb; --text: #1f2937; --text-muted: #6b7280; --radius: 6px; --radius-sm: 4px; --shadow: rgba(0, 0, 0, 0.06); --transition: all 0.2s ease; } body { margin: 0; color: var(--text); background: var(--bg); font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } .page { min-height: 100vh; display: flex; flex-direction: column; } .top-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 20px; background: var(--primary); color: #fff; position: sticky; top: 0; z-index: 10; } .time-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .nav-links { display: flex; gap: 10px; align-items: center; } .nav-link { color: #e5e7eb; text-decoration: none; padding: 6px 12px; border-radius: var(--radius-sm); transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.2); } .nav-link.active, .nav-link:hover { color: #fff; background: rgba(255, 255, 255, 0.1); } .btn:focus-visible, .nav-link:focus-visible, select:focus-visible, #loading-close:focus-visible, #btn-loading-close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .content { flex: 1; padding: 18px; max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box; } .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 1px 3px var(--shadow); padding: 18px; margin-bottom: 16px; } .card h2, .card h3 { margin: 0 0 12px 0; color: var(--primary); font-weight: 600; } .card-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 10px; } select { padding: 6px 10px; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: var(--radius-sm); background: #fff; color: var(--primary); } .btn { padding: 6px 12px; border: none; border-radius: var(--radius-sm); background: var(--accent); color: #fff; cursor: pointer; transition: var(--transition); } .btn:hover { background: var(--accent-hover); } .btn:disabled { opacity: 0.6; cursor: not-allowed; } .btn-secondary { background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.3); } .btn-secondary:hover { background: rgba(255, 255, 255, 0.25); } .report-title { font-size: 18px; font-weight: 600; } .report-summary, .report-content { line-height: 1.7; color: var(--text); font-size: 14px; word-break: break-word; } .report-content { min-height: 180px; } .report-content img, .event-body img { max-width: 100%; height: auto; } .report-content pre, .event-body pre { overflow: auto; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: rgba(0, 0, 0, 0.03); } .events { display: grid; gap: 14px; } .event { border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; background: #fff; } .event-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .tag { padding: 2px 8px; border-radius: 999px; background: rgba(45, 140, 255, 0.1); color: var(--accent); font-size: 12px; } .event-title { font-weight: 600; color: var(--primary); } .event-meta { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--text-muted); margin-bottom: 8px; } .event-body { font-size: 14px; line-height: 1.6; color: var(--text); } .status { margin-top: 10px; color: #ef4444; font-size: 13px; } .muted { color: var(--text-muted); } .empty { color: var(--text-muted); text-align: center; padding: 20px 0; } #loading-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.35); display: none; align-items: center; justify-content: center; z-index: 9999; } #loading-panel { width: 680px; max-width: calc(100vw - 40px); max-height: calc(100vh - 80px); background: #fff; border-radius: var(--radius); border: 1px solid var(--border); box-shadow: 0 6px 20px rgba(0,0,0,0.2); display: flex; flex-direction: column; } #loading-header { padding: 12px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; } #loading-title { font-weight: 600; color: var(--primary); } #loading-close { border: none; background: transparent; color: var(--text-muted); cursor: pointer; font-size: 18px; } #loading-body { padding: 10px 16px; overflow: auto; } #loading-logs { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 13px; line-height: 1.6; white-space: pre-wrap; } #loading-footer { padding: 10px 16px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: flex-end; gap: 10px; } .log-step { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; } .log-step .icon { width: 18px; } .log-step .text { flex: 1; } @media (max-width: 900px) { .top-bar { flex-direction: column; align-items: flex-start; } .content { padding: 14px; } }