:root{--color-bg-primary: #0f172a;--color-bg-secondary: #1e293b;--color-bg-card: #1e293b;--color-bg-card-hover: #334155;--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-accent-blue: #3b82f6;--color-accent-purple: #8b5cf6;--color-accent-cyan: #06b6d4;--color-accent-green: #10b981;--color-accent-yellow: #f59e0b;--color-accent-red: #ef4444;--gradient-primary: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);--gradient-header: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);--gradient-card: linear-gradient(145deg, #1e293b 0%, #334155 100%);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px rgba(59, 130, 246, .3);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--gradient-header);border-bottom:1px solid rgba(255,255,255,.1);padding:var(--spacing-xl) var(--spacing-lg);text-align:center;position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(59,130,246,.15) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(139,92,246,.15) 0%,transparent 50%);pointer-events:none}.header-content{position:relative;z-index:1}.header h1{font-size:2.5rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-sm)}.subtitle{color:var(--color-text-secondary);font-size:1.1rem}.main{flex:1;padding:var(--spacing-xl) var(--spacing-lg);max-width:1200px;margin:0 auto;width:100%}.footer{background:var(--color-bg-secondary);border-top:1px solid rgba(255,255,255,.1);padding:var(--spacing-lg);text-align:center;color:var(--color-text-muted)}.card{background:var(--gradient-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card h2{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm)}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.service{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:#0003;border-radius:var(--radius-md);transition:background var(--transition-fast)}.service:hover{background:#0000004d}.service-icon{font-size:1.5rem}.service-name{flex:1;font-weight:500}.service-status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#fff}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--spacing-lg)}.cache-info{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.cache-stat{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);background:#0003;border-radius:var(--radius-md)}.cache-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.cache-value{font-size:1.25rem;font-weight:600}.cache-value.active{color:var(--color-accent-green)}.cache-value.inactive{color:var(--color-text-muted)}.cache-value.source-cache{color:var(--color-accent-cyan)}.cache-value.source-database{color:var(--color-accent-yellow)}.message-form{display:flex;gap:var(--spacing-md)}.message-input{flex:1;padding:var(--spacing-md);border:2px solid rgba(255,255,255,.1);border-radius:var(--radius-md);background:#0003;color:var(--color-text-primary);font-size:1rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.message-input::placeholder{color:var(--color-text-muted)}.message-input:focus{outline:none;border-color:var(--color-accent-blue);box-shadow:0 0 0 3px #3b82f633}.btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.btn-primary{background:var(--gradient-primary);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.btn-secondary{background:#ffffff1a;color:var(--color-text-secondary)}.btn-secondary:hover{background:#ffffff26;color:var(--color-text-primary)}.btn-danger{background:#ef444433;color:var(--color-accent-red);padding:var(--spacing-sm)}.btn-danger:hover{background:var(--color-accent-red);color:#fff}.message-count{background:var(--color-accent-blue);color:#fff;padding:2px 10px;border-radius:20px;font-size:.8rem;margin-left:var(--spacing-sm)}.messages-list{list-style:none;max-height:400px;overflow-y:auto}.message-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);background:#0003;border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);transition:background var(--transition-fast);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.message-item:hover{background:#0000004d}.message-content{flex:1}.message-content p{margin-bottom:var(--spacing-xs);word-break:break-word}.message-time{font-size:.75rem;color:var(--color-text-muted)}.loading,.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.empty-icon{font-size:3rem;display:block;margin-bottom:var(--spacing-md)}.architecture-diagram{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.arch-layer{display:flex;gap:var(--spacing-lg);justify-content:center}.data-layer{width:100%;justify-content:center}.arch-box{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);min-width:150px;transition:transform var(--transition-fast)}.arch-box:hover{transform:scale(1.05)}.frontend-box{background:linear-gradient(135deg,#06b6d44d,#3b82f64d);border:2px solid var(--color-accent-cyan)}.backend-box{background:linear-gradient(135deg,#8b5cf64d,#3b82f64d);border:2px solid var(--color-accent-purple)}.postgres-box{background:linear-gradient(135deg,#3b82f64d,#10b9814d);border:2px solid var(--color-accent-blue)}.redis-box{background:linear-gradient(135deg,#ef44444d,#f59e0b4d);border:2px solid var(--color-accent-red)}.arch-icon{font-size:2rem;margin-bottom:var(--spacing-xs)}.arch-name{font-weight:600;font-size:1rem}.arch-tech{font-size:.75rem;color:var(--color-text-secondary)}.arch-port{font-size:.7rem;color:var(--color-text-muted);background:#0000004d;padding:2px 8px;border-radius:10px;margin-top:var(--spacing-xs)}.arch-arrow{font-size:1.5rem;color:var(--color-text-muted)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0003;border-radius:4px}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (max-width: 768px){.header h1{font-size:1.75rem}.subtitle{font-size:.9rem}.content-grid,.cache-info{grid-template-columns:1fr}.message-form{flex-direction:column}.services-grid{grid-template-columns:1fr 1fr}.arch-layer.data-layer{flex-direction:column;align-items:center}}
