*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f1f3f6;color:#1c2733}.page{max-width:860px;margin:0 auto;padding:16px}header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}h1{font-size:1.4rem;margin:8px 0}.sub{color:#5d6b7a;font-size:.9rem}.err{color:#b00020}button{background:#0b5fff;color:#fff;border:0;border-radius:8px;padding:10px 16px;font-size:1rem;cursor:pointer}button.ghost{background:transparent;color:#0b5fff}button:disabled{opacity:.6}input,textarea{width:100%;padding:10px;border:1px solid #c6cfd9;border-radius:8px;font-size:1rem;margin-top:4px}label{display:block;margin:10px 0;font-size:.9rem;font-weight:600}.card{background:#fff;border-radius:12px;padding:18px;margin:12px 0;box-shadow:0 1px 3px #00000014}.card.wide{max-width:700px}.center-card{display:flex;min-height:100vh;align-items:center;justify-content:center}.center-card .card{width:340px;text-align:center}.center-card input{margin:12px 0}.row{display:flex;gap:12px;align-items:center}.row label,.grow{flex:1}.clickable{cursor:pointer}.badge{padding:4px 10px;border-radius:999px;font-size:.8rem;white-space:nowrap}.badge.queued{background:#fff3cd;color:#7a5d00}.badge.working{background:#cfe2ff;color:#084298}.badge.ready{background:#d1e7dd;color:#0f5132}.thread-head{display:flex;gap:12px;align-items:center;margin:10px 0;flex-wrap:wrap}.msgs{display:flex;flex-direction:column;gap:14px;padding:10px 0 110px}.msg{max-width:85%}.msg.tech{align-self:flex-end;text-align:right}.msg.ai{align-self:flex-start}.who{font-size:.75rem;font-weight:700;color:#5d6b7a;margin-bottom:2px}.bubble{background:#fff;border-radius:12px;padding:12px 14px;white-space:pre-wrap;text-align:left;box-shadow:0 1px 2px #00000014}.msg.tech .bubble{background:#0b5fff;color:#fff}.bubble.thinking{color:#3a4654;font-style:italic}.pulse{color:#0b5fff;animation:pulse 1.2s ease-in-out infinite;font-style:normal}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.atts{margin-top:4px;display:flex;gap:10px;flex-wrap:wrap}.atts a{font-size:.85rem}.ts{font-size:.7rem;color:#8a97a5;margin-top:2px}.composer{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:10px 16px;display:flex;gap:10px;align-items:center;border-top:1px solid #dde3ea}.composer textarea{flex:2}.composer input[type=file]{flex:1;border:0}@media (max-width: 700px){.composer{flex-wrap:wrap}}
