.sh-logs-view { padding: 28px; background: radial-gradient(circle at top, rgba(248,113,113,0.08), transparent), radial-gradient(circle at bottom, rgba(14,165,233,0.08), transparent), var(--sh-bg); border-radius: 22px; } .sh-logs-hero { background: linear-gradient(135deg, rgba(248,113,113,0.16), rgba(248,159,99,0.16)); border-radius: 22px; padding: 24px; border: 1px solid var(--sh-border); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px; box-shadow: 0 25px 40px rgba(0,0,0,0.35); } .sh-logs-hero h1 { margin: 0; font-size: 26px; } .sh-logs-hero p { margin: 6px 0 0; color: var(--sh-text-secondary); } .sh-log-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; min-width: 280px; } .sh-log-stat { background: rgba(15,23,42,0.45); border-radius: 16px; padding: 12px; border: 1px solid rgba(255,255,255,0.08); text-align: center; } .sh-log-stat .label { display: block; font-size: 12px; text-transform: uppercase; color: var(--sh-text-secondary); letter-spacing: 0.12em; } .sh-log-stat .value { font-size: 28px; font-weight: 700; line-height: 1; font-family: 'JetBrains Mono', monospace; } .sh-log-stat.danger .value { color: #f87171; } .sh-log-stat.warn .value { color: #fbbf24; } .sh-log-controls { margin: 26px 0 20px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; } .sh-log-search { flex: 1; min-width: 260px; } .sh-log-search input { width: 100%; border-radius: 16px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.02); padding: 12px 16px; color: var(--sh-text-primary); font-size: 15px; } .sh-log-selectors { display: flex; gap: 12px; align-items: center; } .sh-log-selectors select { border-radius: 12px; border: 1px solid rgba(255,255,255,0.12); background: rgba(15,23,42,0.8); color: var(--sh-text-primary); padding: 10px 14px; } .sh-toggle { display: flex; gap: 6px; align-items: center; font-size: 13px; color: var(--sh-text-secondary); } .sh-toggle input { width: 16px; height: 16px; } .sh-btn { border-radius: 12px; padding: 10px 18px; border: 1px solid rgba(255,255,255,0.12); background: rgba(99,102,241,0.18); color: white; font-weight: 600; cursor: pointer; } .sh-btn-primary { background: linear-gradient(135deg,#6366f1,#a855f7); border-color: transparent; } .sh-logs-body { display: grid; grid-template-columns: 3fr 1fr; gap: 20px; } .sh-log-panel { background: var(--sh-bg-card); border-radius: 20px; padding: 16px; border: 1px solid var(--sh-border); box-shadow: 0 20px 40px rgba(0,0,0,0.3); display: flex; flex-direction: column; gap: 12px; } .sh-log-filters { margin-bottom: 8px; } .sh-log-stream { background: rgba(0,0,0,0.35); border-radius: 16px; border: 1px solid rgba(255,255,255,0.08); padding: 14px; height: 520px; overflow-y: auto; font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--sh-text-primary); } .sh-log-line { display: flex; gap: 14px; padding: 6px 4px; border-bottom: 1px solid rgba(255,255,255,0.03); } .sh-log-line.error { background: rgba(248,113,113,0.08); } .sh-log-line.warning { background: rgba(251,191,36,0.08); } .sh-log-index { color: var(--sh-text-muted); min-width: 40px; text-align: right; } .sh-log-message { white-space: pre-wrap; } .sh-log-side { background: rgba(15,23,42,0.85); border-radius: 20px; padding: 18px; border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 20px 40px rgba(0,0,0,0.25); } .sh-log-side h3 { margin: 0 0 12px; font-size: 18px; } .sh-log-side ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; } .sh-log-side li { display: flex; justify-content: space-between; font-size: 14px; border-bottom: 1px dashed rgba(255,255,255,0.1); padding-bottom: 6px; } .sh-log-side strong { font-family: 'JetBrains Mono', monospace; } @media (max-width: 1024px) { .sh-logs-body { grid-template-columns: 1fr; } } @media (max-width: 720px) { .sh-logs-view { padding: 16px; } .sh-log-controls { flex-direction: column; align-items: stretch; } .sh-log-selectors { flex-direction: column; align-items: stretch; } }