.log-monitor { display: flex; flex-direction: column; gap: 16px; } .log-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; } .log-header h2 { margin: 0; } .log-subtitle { margin-top: 6px; color: #666; font-size: 12px; } .log-actions .btn { border: 1px solid #ddd; padding: 8px 12px; border-radius: 8px; background: #fff; cursor: pointer; } .log-actions .btn:disabled { opacity: 0.6; cursor: not-allowed; } .log-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; padding: 12px; border: 1px solid #eee; border-radius: 10px; background: #fff; } .log-overview { padding: 12px; border: 1px solid #eee; border-radius: 10px; background: #fff; display: flex; flex-direction: column; gap: 10px; } .overview-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .overview-title { font-weight: 600; color: #333; } .overview-items { display: flex; gap: 12px; flex-wrap: wrap; color: #444; font-size: 12px; } .overview-config { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; } .overview-config .mini { display: flex; flex-direction: column; gap: 6px; min-width: 120px; } .overview-config .mini label { font-size: 12px; color: #666; } .overview-config .mini input { border: 1px solid #ddd; border-radius: 8px; padding: 8px 10px; outline: none; } .control { display: flex; flex-direction: column; gap: 6px; min-width: 140px; } .control.inline { min-width: auto; } .control label { font-size: 12px; color: #666; } .control input, .control select { border: 1px solid #ddd; border-radius: 8px; padding: 8px 10px; outline: none; } .log-error { padding: 10px 12px; border-radius: 10px; border: 1px solid #f3c4c4; background: #fff5f5; color: #b42318; } .log-table { border: 1px solid #eee; border-radius: 10px; overflow: hidden; background: #fff; } .log-paging { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px; border: 1px solid #eee; border-radius: 10px; background: #fff; } .paging-left { display: flex; flex-direction: column; gap: 6px; min-width: 260px; } .paging-meta { font-size: 12px; color: #333; } .paging-meta code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 12px; padding: 2px 6px; border-radius: 6px; background: #f5f5f5; border: 1px solid #eee; } .paging-actions { display: flex; gap: 8px; align-items: center; } .log-row { display: grid; grid-template-columns: 170px 140px 110px 1fr; gap: 12px; padding: 10px 12px; border-top: 1px solid #f3f3f3; align-items: start; } .log-head { border-top: none; background: #fafafa; font-weight: 600; color: #333; } .log-empty { padding: 16px 12px; color: #666; } .c-time, .c-svc, .c-level { font-size: 12px; color: #333; } .c-msg { display: flex; flex-direction: column; gap: 6px; } .msg-line { display: flex; gap: 8px; align-items: baseline; } .msg-text { font-size: 13px; color: #111; word-break: break-word; white-space: pre-wrap; } .msg-count { font-size: 12px; color: #666; } .msg-meta { font-size: 12px; color: #666; } .msg-details summary { cursor: pointer; font-size: 12px; color: #333; } .stack { margin: 8px 0 0; padding: 10px; border-radius: 8px; background: #0b1020; color: #dbeafe; overflow: auto; font-size: 12px; line-height: 1.35; } .pill { display: inline-block; padding: 3px 8px; border-radius: 999px; font-size: 12px; border: 1px solid #ddd; background: #fff; } .pill-error { border-color: #f3c4c4; background: #fff5f5; color: #b42318; } .pill-critical { border-color: #f1aeb5; background: #ffe4e6; color: #9f1239; } .pill-warning { border-color: #f6d48b; background: #fffbeb; color: #92400e; } .pill-info { border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; } .pill-debug { border-color: #e5e7eb; background: #f9fafb; color: #374151; } @media (max-width: 900px) { .log-row { grid-template-columns: 1fr; } .log-head { display: none; } .c-time::before { content: "时间:"; color: #666; } .c-svc::before { content: "服务:"; color: #666; } .c-level::before { content: "级别:"; color: #666; } }