*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#fff;height:100vh}.app{height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem}.container{background:#fff;border-radius:12px;width:100%;max-width:800px;height:90vh;max-height:700px;display:flex;flex-direction:column}header{padding:1.5rem;border-bottom:1px solid #eee}h1{color:#000;font-size:1.5rem;margin-bottom:.5rem}.status{padding:.5rem 1rem;border-radius:6px;font-weight:500;display:inline-block;font-size:.9rem}.connected{background:#000;color:#fff}.disconnected{background:#fff;color:#000;border:1px solid #000}.messages{flex:1;overflow-y:auto;padding:1.5reff}.message{margin-bottom:1rem;padding:1rem;border-radius:8px;max-width:85%;margin-left:auto;margin-right:auto}.message.user{color:#000;text-align:center}.message.april{color:#1a1a1a;line-height:1.7;text-align:center}.message.april h1{font-size:1.5rem;font-weight:700;margin-top:1.5rem;margin-bottom:.75rem;color:#000;border-bottom:2px solid #ddd;padding-bottom:.5rem}.message.april h2{font-size:1.3rem;font-weight:700;margin-top:1.25rem;margin-bottom:.75rem;color:#000}.message.april h3{font-size:1.1rem;font-weight:600;margin-top:1rem;margin-bottom:.5rem;color:#000}.message.april p{margin-bottom:1rem;color:#1a1a1a}.message.april p:last-child{margin-bottom:0}.message.april ul,.message.april ol{margin-left:1.5rem;margin-top:.5rem;margin-bottom:1rem;color:#1a1a1a}.message.april li{margin-bottom:.5rem}.message.april code{background:#000;color:#fff;padding:.2rem .5rem;border-radius:4px;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.9em}.message.april pre{background:#000;color:#fff;padding:1rem;border-radius:6px;overflow-x:auto;margin:1rem 0}.message.april pre code{background:transparent;padding:0}.message.april strong{font-weight:700;color:#2a2a2a}.message.april em{font-style:italic;color:#2a2a2a}.message.april blockquote{border-left:4px solid #444;margin:1rem 0;padding-left:1rem;color:#2a2a2a;font-style:italic}.message.april a{color:#2a2a2a;text-decoration:underline;font-weight:500}.message.april a:hover{text-decoration:none}.input-group{padding:1.5rem;display:flex;gap:.5rem}input{flex:1;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:all .2s ease;color:#000;background:#fff}input:focus{outline:none;border-color:#000}input:disabled{cursor:not-allowed}button{padding:.75rem 2rem;background:#000;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}button:hover:not(:disabled){background:#333;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.login-container{max-width:400px;height:auto;max-height:none;background:#fff;display:flex;align-items:center;justify-content:center}.login-container header{text-align:center;border-bottom:none;padding-bottom:0}.login-container h1{font-size:3rem;color:#000;font-weight:300;letter-spacing:.1em}.login-form{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.login-field{display:flex;flex-direction:column;text-align:center}.login-field input{padding:1rem;font-size:1rem;border-radius:8px;background:#fff;color:transparent;border:none}.login-field input:focus{border-color:transparent;outline:none;background:#fff}.login-error{color:#000;font-size:.9rem;text-align:center;padding:.5rem;background:#f0f0f0;border-radius:6px;border:2px solid #000}.login-form button{padding:1rem;border:1px solid #000;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.login-form button:hover:not(:disabled){background:#333;transform:translateY(-2px);box-shadow:0 5px 15px #0000004d}.login-form button:disabled{background:#ccc;cursor:not-allowed}.blinking-cursor{animation:blink 1.8s infinite}.password-dot{animation:jump .3s ease-out;transition:all .6s cubic-bezier(.68,-.55,.265,1.55)}.password-dot.collapsing{transform:scale(0);opacity:0;margin:0}.first-dot{animation:jump .3s ease-out}@keyframes jump{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes blink{0%,49%{opacity:0}50%,to{opacity:1}}
