*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#333;background:#f5f5f5;height:100vh;overflow:hidden}#root{height:100%}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem}.welcome h1{font-size:2.5rem;color:#2563eb}.welcome p{color:#666}.app{display:flex;flex-direction:column;height:100%}.header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#2563eb;color:#fff}.header h1{font-size:1.25rem;font-weight:600}.room-id{font-size:.875rem;opacity:.8;font-family:monospace}.main{display:flex;flex:1;overflow:hidden}.chat-panel{flex:1;display:flex;flex-direction:column;background:#fff}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.message{padding:1rem 1.25rem;border-radius:8px;max-width:80%}.message.user{background:#e0e7ff;align-self:flex-end}.message.assistant{background:#f3f4f6;align-self:flex-start}.message.loading{color:#666;font-style:italic}.message-role{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#666;margin-bottom:.25rem}.message-content{word-break:break-word}.input-form{display:flex;gap:.5rem;padding:1rem;border-top:1px solid #e5e7eb;background:#fafafa}.input-form textarea{flex:1;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;font-size:.875rem;resize:none}.input-form textarea:focus{outline:none;border-color:#2563eb}.artifacts-panel{width:320px;background:#fafafa;border-left:1px solid #e5e7eb;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.artifact{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.artifact h3{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.artifact p{font-size:.875rem;color:#4b5563;white-space:pre-wrap;word-break:break-word}.artifact ul{font-size:.875rem;color:#4b5563;padding-left:1.25rem}.artifact li{margin-bottom:.25rem}.empty{color:#9ca3af;font-style:italic}.review{font-size:.875rem}.review>div{margin-top:.75rem}.severity{display:inline-block;padding:.125rem .375rem;border-radius:4px;font-size:.625rem;font-weight:600;text-transform:uppercase}.issue-critical .severity{background:#fef2f2;color:#dc2626}.issue-major .severity{background:#fef3c7;color:#d97706}.issue-minor .severity{background:#f0fdf4;color:#16a34a}button{padding:.5rem 1rem;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:#1d4ed8}button:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff3}.btn-secondary:hover:not(:disabled){background:#ffffff4d}.btn-small{padding:.25rem .5rem;font-size:.75rem}.error{color:#dc2626}.error-banner{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:#fef2f2;color:#dc2626;padding:.75rem 1.5rem;border-radius:8px;border:1px solid #fecaca;font-size:.875rem}.message.streaming{border-left:3px solid #a39f97}.cursor{animation:blink 1s infinite;color:#747474}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.btn-stop{background:#dc2626}.btn-stop:hover:not(:disabled){background:#b91c1c}.code-block-wrapper{position:relative;margin:.75rem 0}.code-block{background:#1e1e1e;border-radius:6px;padding:1.75rem 1rem 1rem;overflow-x:auto;font-family:SF Mono,Fira Code,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5;margin:0}.code-block code{color:#d4d4d4}.code-language{position:absolute;top:.5rem;right:.75rem;font-size:.65rem;color:#858585;font-family:system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name{color:#569cd6}.hljs-string,.hljs-attr,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#ce9178}.hljs-number,.hljs-literal{color:#b5cea8}.hljs-comment,.hljs-quote,.hljs-deletion{color:#6a9955}.hljs-title,.hljs-section{color:#dcdcaa}.hljs-class .hljs-title,.hljs-type{color:#4ec9b0}.hljs-variable,.hljs-template-variable{color:#9cdcfe}.hljs-function{color:#dcdcaa}.hljs-params,.hljs-attribute{color:#9cdcfe}.hljs-meta{color:#c586c0}button{transition:background-color .15s ease,transform .1s ease}button:active:not(:disabled){transform:scale(.98)}.messages{scroll-behavior:smooth}.message.loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.inline-code{background:#e5e7eb;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Fira Code,Monaco,Consolas,monospace;font-size:.85em;color:#d946ef}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6,.artifact h1,.artifact h2,.artifact h3,.artifact h4,.artifact h5,.artifact h6{margin-top:.75rem;margin-bottom:.25rem;font-weight:600;line-height:1.3;color:#1f2937}.message-content>*:first-child{margin-top:0}.message-content h1,.artifact h1{font-size:1.5rem}.message-content h2,.artifact h2{font-size:1.25rem}.message-content h3,.artifact h3{font-size:1.1rem}.message-content h4,.message-content h5,.message-content h6,.artifact h4,.artifact h5,.artifact h6{font-size:1rem}.message-content p,.artifact>p{margin:.25rem 0}.message-content ul,.message-content ol{margin:.25rem 0;padding-left:1.5rem}.message-content li{margin:.125rem 0}.message-content strong,.artifact strong{font-weight:600}.message-content em,.artifact em{font-style:italic}
