body{margin:0;min-height:100vh}#root{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0}.container{max-width:1400px;margin:0 auto;padding:2rem}.header{margin-bottom:3rem}.header h1{font-size:2.5rem;font-weight:700;background:linear-gradient(to right,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.error-list{display:grid;gap:1rem}.error-card{background:#1e293b;border:1px solid #334155;border-radius:.75rem;padding:1.5rem;cursor:pointer;transition:all .2s}.error-card:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 10px 25px #3b82f61a}.error-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem}.error-type{font-size:1.25rem;font-weight:600;color:#ef4444}.error-time{font-size:.875rem;color:#94a3b8}.error-message{color:#cbd5e1;margin-bottom:.75rem;font-size:.95rem}.error-meta{display:flex;gap:1.5rem;font-size:.875rem;color:#64748b}.badge{padding:.25rem .75rem;border-radius:.375rem;font-weight:500;font-size:.75rem}.badge-service{background:#1e40af;color:#dbeafe}.badge-env{background:#065f46;color:#d1fae5}.loading{text-align:center;padding:3rem;color:#64748b}.error-detail{background:#1e293b;border:1px solid #334155;border-radius:.75rem;padding:2rem}.detail-header{border-bottom:1px solid #334155;padding-bottom:1.5rem;margin-bottom:2rem}.detail-section{margin-bottom:2rem}.detail-section h3{color:#60a5fa;font-size:1.1rem;margin-bottom:1rem;font-weight:600}.detail-section p{color:#cbd5e1;line-height:1.6}.ai-analysis{background:linear-gradient(135deg,#1e3a8a,#312e81);padding:1.5rem;border-radius:.75rem;border:1px solid #3b82f6}.ai-analysis h3{color:#93c5fd}.ai-analysis div{color:#dbeafe}.detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding-top:1.5rem;border-top:1px solid #334155;color:#94a3b8;font-size:.875rem}.detail-meta strong{color:#cbd5e1;margin-right:.5rem}.typing-indicator span{animation:blink 1.4s infinite;animation-fill-mode:both}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}
