.cron-monitoring-panel{margin:0 auto;max-width:1400px;padding:2rem}.panel-header{border-bottom:2px solid #e5e7eb;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.header-left,.panel-header{align-items:center;display:flex}.header-left{gap:1rem}.header-left h2{color:#111827;font-size:1.5rem;font-weight:600;margin:0}.service-status{align-items:center;border-radius:9999px;display:inline-flex;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.service-status.running{background-color:#d1fae5;color:#065f46}.service-status.stopped{background-color:#fee2e2;color:#991b1b}.header-right{display:flex;gap:.5rem}.refresh-button,.toggle-auto-refresh{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.refresh-button:hover,.toggle-auto-refresh:hover{background:#f9fafb;border-color:#9ca3af}.toggle-auto-refresh.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.spin{animation:spin 1s linear infinite}.spin-slow{animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-spinner{align-items:center;color:#6b7280;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:4rem}.jobs-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-bottom:2rem}.job-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .2s}.job-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a}.job-card.has-errors{border-left:4px solid #ef4444}.job-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.job-title{align-items:center;display:flex;gap:.5rem}.job-title h3{color:#111827;font-size:1.125rem;font-weight:600;margin:0}.running-badge{align-items:center;animation:pulse 2s ease-in-out infinite;background:#dbeafe;border-radius:.375rem;color:#1e40af;display:flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.25rem .5rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.job-schedule{align-items:center;background:#f9fafb;border-radius:.375rem;display:flex;gap:.5rem;margin-bottom:1rem;padding:.5rem}.job-schedule code{color:#4b5563;font-family:Monaco,Menlo,monospace;font-size:.875rem}.job-stats{grid-gap:.75rem;border-bottom:1px solid #e5e7eb;display:grid;gap:.75rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem;padding-bottom:1rem}.stat-item{display:flex;flex-direction:column;gap:.25rem;text-align:center}.stat-item.success{color:#059669}.stat-item.error{color:#dc2626}.stat-label{color:#6b7280;font-size:.75rem;font-weight:500}.stat-value{color:#111827;font-size:1.25rem;font-weight:600}.stat-value.success-rate{color:#059669}.job-details{display:flex;flex-direction:column;gap:.5rem}.detail-row{align-items:center;display:flex;font-size:.875rem;justify-content:space-between}.detail-label{color:#6b7280}.detail-value{color:#111827;font-weight:500}.job-error{align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#991b1b;display:flex;font-size:.875rem;gap:.5rem;margin-top:.5rem;padding:.75rem}.logs-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.logs-section h3{align-items:center;color:#111827;display:flex;font-size:1.125rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.logs-container{background:#1f2937;border-radius:.5rem;font-family:Monaco,Menlo,monospace;font-size:.875rem;max-height:400px;overflow-y:auto;padding:1rem}.logs-container::-webkit-scrollbar{width:8px}.logs-container::-webkit-scrollbar-track{background:#374151;border-radius:4px}.logs-container::-webkit-scrollbar-thumb{background:#6b7280;border-radius:4px}.no-logs{color:#9ca3af;margin:0;padding:2rem;text-align:center}.log-entry{color:#d1d5db;display:flex;gap:1rem;line-height:1.5;padding:.25rem 0}.log-timestamp{color:#9ca3af;flex-shrink:0;font-weight:500}.log-message{color:#e5e7eb}@media (max-width:768px){.cron-monitoring-panel{padding:1rem}.jobs-grid{grid-template-columns:1fr}.panel-header{align-items:flex-start;flex-direction:column;gap:1rem}.header-right{width:100%}.refresh-button,.toggle-auto-refresh{flex:1 1}.job-stats{grid-template-columns:repeat(2,1fr)}}